美文网首页
三创建bitmap标签资源文件及遮罩效果

三创建bitmap标签资源文件及遮罩效果

作者: 小鱼你好 | 来源:发表于2017-09-18 14:39 被阅读0次

bitmap元素的 tileMode 属性来创建一种模式,属性值如下:

● clamp :复制源位图的边缘像素

● repeat:源位图会在横向和纵向重复地平铺

● mirror:源位图会重复地进行平铺,但按照源位图和镜像位图交替的方式平铺

代码示例:

<bitmap xmlns:android="http://schemas.android.com/apk/res/android"

android:src="@drawable/checkers"

android:tileMode="repeat"/>

制作遮罩效果:圆角图

//创建并加载图片(通常是不可修改的)

Bitmap source = BitmapFactory.decodeResource(getResources(),R.drawable.dog);

//创建一个供修改的图片,然后加上 Canvas

Bitmap result = Bitmap.createBitmap(source.getWidth(), source.getHeight(),Config.ARGB_8888);

Canvas canvas = new Canvas(result);

Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);

//首先创建并绘制圆角矩形“遮罩”

RectF rect = new RectF(0,0,source.getWidth(),source.getHeight());

float radius = 25.0f;

paint.setColor(Color.BLACK);

canvas.drawRoundRect(rect, radius, radius, paint);

//用转换模式转化并绘制原图

paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));

canvas.drawBitmap(source, 0, 0, paint);

paint.setXfermode(null);

iv.setImageBitmap(result);

制作任意遮罩图形:

//创建并加载图片(通常是不可修改的)

Bitmap source = BitmapFactory.decodeResource(getResources(),R.drawable.dog);

Bitmap mask = BitmapFactory.decodeResource(getResources(),R.drawable.triangle);

//创建一个供修改的图片,然后加上 Canvas

Bitmap result = Bitmap.createBitmap(source.getWidth(), source.getHeight(),Config.ARGB_8888);

Canvas canvas = new Canvas(result);

Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);

//先画上遮罩图片,然后用转换模式绘制源图

canvas.drawBitmap(mask, 0, 0, paint);

paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));

canvas.drawBitmap(source, 0, 0, paint);

paint.setXfermode(null);

iv.setImageBitmap(result);

相关文章

网友评论

      本文标题:三创建bitmap标签资源文件及遮罩效果

      本文链接:https://www.haomeiwen.com/subject/uykesxtx.html