码迷,mamicode.com
首页 > 其他好文 > 详细

EmbossMaskFilter BlurMaskFilter 学习

时间:2016-08-02 19:17:51      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:

 

BlurMaskFilter

 

package com.soyoungboy.customview.widget;

import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BlurMaskFilter;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.os.Build;
import android.util.AttributeSet;
import android.view.View;

import com.example.customview.R;

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public class BlurMaskFilterView extends View {

    private Paint mPaint;
    private Bitmap mBitmap;
    private Bitmap mAlphaBmp;

    public BlurMaskFilterView(Context context, AttributeSet attrs,
            int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    public BlurMaskFilterView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public BlurMaskFilterView(Context context) {
        super(context);
        init();
    }

    /**
     * 进行初始化操作
     */
    private void init() {
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
            setLayerType(View.LAYER_TYPE_SOFTWARE, null);
        }
        mPaint = new Paint();
        mBitmap = BitmapFactory.decodeResource(getResources(),
                R.drawable.ic_launcher);
        mAlphaBmp = mBitmap.extractAlpha();

    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        // 宽度
        int width = 200;
        // 高度
        int height = width * mAlphaBmp.getHeight() / mAlphaBmp.getWidth();

        // 绘制红色阴影,首先将画笔设置为红色
        mPaint.setColor(Color.RED);
        // 就是添加内外发光效果
        mPaint.setMaskFilter(new BlurMaskFilter(10, BlurMaskFilter.Blur.NORMAL));
        // 绘制阴影在矩形框里面 左上角坐标 10,10,右下角坐标width,height
        canvas.drawBitmap(mAlphaBmp, null, new Rect(10, 10, width, height),
                mPaint);

        // 绘制原图像
        mPaint.setMaskFilter(null);
        canvas.drawBitmap(mBitmap, null, new Rect(0, 0, width, height), mPaint);

    }

}

效果图:
技术分享

mPaint.setMaskFilter(new BlurMaskFilter(10, BlurMaskFilter.Blur.INNER));

效果图:

技术分享

mPaint.setMaskFilter(new BlurMaskFilter(10, BlurMaskFilter.Blur.OUTER));

效果图:

技术分享

mPaint.setMaskFilter(new BlurMaskFilter(10, BlurMaskFilter.Blur.SOLID));

技术分享

 

EmbossMaskFilter BlurMaskFilter 学习

标签:

原文地址:http://www.cnblogs.com/androidsuperman/p/5730157.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!