PorterDuff.Mode详解
来源:互联网 发布:windows snmp测试工具 编辑:程序博客网 时间:2024/05/22 13:47
PorterDuff.Mode主要用于设置画笔模式,先贴上google官方ApiDemo的Graphics中Xfermode效果图:
首先,我们要知道Canvas是可以分层的,通过saveLayer方法我们可以在layer栈中新增一个layer,相应的通过restoreTo方法退栈,不懂的可以查相关资料,Layer主要有一下两点要注意:
- Layer入栈时,后续的DrawXXX操作都发生在这个Layer上
- Layer退栈时,会把本层绘制的图像“绘制”到上层或是Canvas(即最底层)上
@Override
protected void onDraw(Canvas mCanvas) {
super.onDraw(mCanvas);
mCanvas.drawColor(Color.GREEN);
mCanvas.translate(200,200);
Bitmap src = BitmapFactory.decodeResource(getResources(), R.drawable.timg);
Bitmap mask=Bitmap.createBitmap(300, 300, src.getConfig());
Canvas cc=new Canvas(mask);
cc.drawCircle(150,150,150,mPaint1);
int sc = mCanvas.saveLayer(0,0,300,300, null, Canvas.ALL_SAVE_FLAG);
mCanvas.drawBitmap(src, 0, 0, mPaint1);
mPaint1.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
mCanvas.drawBitmap(mask, 0, 0, mPaint1);
mPaint1.setXfermode(null);
mCanvas.restoreToCount(sc);
}
Ps:作为mask的bitmap应该大于或等于src_bitmap的大小,paint只能在绘制bitmap(mask)区域起作用,DST_OUT、DST_IN考虑到透明度
- PorterDuff.Mode详解
- android PorterDuff.Mode详解
- PorterDuff.Mode及Xfermode详解
- PorterDuff.Mode
- PorterDuff.Mode
- PorterDuff.Mode
- PorterDuff.Mode
- PorterDuff.Mode
- PorterDuff.Mode
- PorterDuff.Mode
- PorterDuff.Mode
- PorterDuff.Mode
- android PorterDuffXfermode ,PorterDuff.Mode 使用 以及Porter-Duff规则详解
- android PorterDuffXfermode ,PorterDuff.Mode 使用 以及Porter-Duff规则详解
- android PorterDuffXfermode ,PorterDuff.Mode 使用 以及Porter-Duff规则详解
- android PorterDuffXfermode ,PorterDuff.Mode 使用 以及Porter-Duff规则详解
- android PorterDuffXfermode ,PorterDuff.Mode 使用 以及Porter-Duff规则详解
- android PorterDuffXfermode ,PorterDuff.Mode 使用 以及Porter-Duff规则详解
- hdu 5661 异或
- mysql基础(一)
- 【剑指offer-Java版】03二维数组中的查找
- C++模板的坑
- 关于VC维的菜鸡的理解
- PorterDuff.Mode详解
- 为自己的本地站点封装域名
- viewWillDisappear,viewWillAppear不调用的解决方法
- android解决无法设定listview的item高度
- 【AudioProfile】情景模式下音效的默认设置
- 滑动效果的View
- python的setdefault方法
- 关于在Fragment中使用ToolBar导致菜单错乱----惊现巨坑
- 练习二 1021 The magic apple tree