Android画图之setXfermode处理两图相交叉的情况
2015-09-17 17:17
495 查看
注意:不能直接在”画布“上画,要先放张”纸“再画。
mBitmap = Bitmap.createBitmap(width,height, Bitmap.Config.ARGB_8888);
canvas原有的图片 可以理解为背景 就是dst
新画上去的图片 可以理解为前景 就是src
用法:
这里我用自己写的一个例子说明
我画了一个***的圆和一个绿色的矩形来举例
效果图:
mBitmap = Bitmap.createBitmap(width,height, Bitmap.Config.ARGB_8888);
canvas原有的图片 可以理解为背景 就是dst
新画上去的图片 可以理解为前景 就是src
用法:
[code]... PorterDuffXfermode mode=new PorterDuffXfermode(PorterDuff.Mode.DST_OVER); mPaintRect.setXfermode(mode); ... mBitmap = Bitmap.createBitmap(width,height, Bitmap.Config.ARGB_8888); canvasBit=new Canvas(mBitmap); ... canvasBit.drawCircle(width/2,height/2,width/2,mPaintCircel);//dst canvasBit.drawRect(0,0,width/2,width/2,mPaintRect);//src canvas.drawBitmap(mBitmap,0,0,null);
这里我用自己写的一个例子说明
我画了一个***的圆和一个绿色的矩形来举例
[code]public class MyBitmapTwo extends View{ private int width; private int height; private Bitmap mBitmap; private Paint mPaintCircel; private Paint mPaintRect; private Canvas canvasBit; public MyBitmapTwo(Context context) { super(context); } public MyBitmapTwo(Context context, AttributeSet attrs) { super(context, attrs); mPaintCircel=new Paint(); mPaintCircel.setColor(Color.YELLOW); mPaintRect=new Paint(); mPaintRect.setColor(Color.GREEN); PorterDuffXfermode mode=new PorterDuffXfermode(PorterDuff.Mode.DST_OVER); mPaintRect.setXfermode(mode); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); width = getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec); height = getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec); setMeasuredDimension(width, height);//设置画布的大小,长和宽 mBitmap = Bitmap.createBitmap(width,height, Bitmap.Config.ARGB_8888); canvasBit=new Canvas(mBitmap); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawColor(Color.RED); canvasBit.drawCircle(width/2,height/2,width/2,mPaintCircel); canvasBit.drawRect(0,0,width/2,width/2,mPaintRect); canvas.drawBitmap(mBitmap,0,0,null); }
效果图:
相关文章推荐
- Android开源库
- 解决Android手机自带内部存储路径存在但是却获取不到内容的问题
- android presentation
- Android imx6平台 iw移植笔记
- Mono.Android 基础
- android 各个手机型号的功放和听筒模式的研究
- 【Android应用开发】EasyDialog 源码解析
- 【Android应用开发】EasyDialog 源码解析
- Android在指定View的下方显示PopupWindow
- android中按电源键锁屏然后解锁导致Activity调用onDestory以及如何防止锁屏 翻转屏幕也会触发的情况
- Handler解析
- 去除Android状态栏的广告推送
- 【Android】图片操作之 —— Bitmap,byte[],Drawable,InputStream相互转化工具类
- android studio 修改包名
- Android移动view动画问题 关于view的位置移动了,但view里面绑定的监听器还在原位
- 图片加载框架Android-Universal-Image-Loader使用及解析
- android 应用实现屏幕下沉(android 4.4及以上)
- Android在线热更新hot fix - AndFix试用
- Android Studio 很耗内存的问题
- android gps开发必备资料