Android如何将一张图片裁成圆形/圆角矩形/特殊形状
来源:互联网 发布:大数据技术具体应用 编辑:程序博客网 时间:2024/04/27 01:23
总体思路如下:
(1)使用canvas先画一层形状层,即最后是要图片裁剪成神马样的
(2)再将paint做如下设置(画两层则取上层和下层的交叉部分,显示上层)
paint.setXfermode(new PorterDuffXfermode(Mode. SRC_IN));
具体这句话是做什么请看:http://407827531.iteye.com/blog/1470519
(3)再使用canvas将图片画进去
(4)canvas的输出的bitmap就是需要的东西啦
关键:如何将.9.png转换成bitmap对象呢?
代码如下:
NinePatchDrawable drawable = (NinePatchDrawable) mContext .getResources().getDrawable(R.drawable. my_shape); drawable.setBounds(rect); Bitmap first = Bitmap. createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config. ARGB_8888); Canvas newCanvas = new Canvas(first); drawable.draw(newCanvas);
my_shape.9.png是一张背景透明的有一个特定形状的图形的.9图
最后
整个函数的代码如下:
public static Bitmap getShapedBitmap(Context context, Bitmap bitmap, int pixels) { try { Bitmap output = Bitmap. createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config. ARGB_8888); Canvas canvas = new Canvas(output); final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); final RectF rectF = new RectF(rect); final float roundPx = pixels; NinePatchDrawable drawable = (NinePatchDrawable) context.getResources().getDrawable(R.drawable.my_shape); drawable.setBounds(rect); Bitmap first = Bitmap. createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config. ARGB_8888); Canvas newCanvas = new Canvas(first); drawable.draw(newCanvas); paint.setAntiAlias( true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(Color. BLACK);// canvas.drawRoundRect(rectF, roundPx, roundPx, paint);//若想切成圆角矩形,则用这句话 canvas.drawBitmap(first, rect, rectF, paint);//切成特定的形状 paint.setXfermode( new PorterDuffXfermode(Mode. SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return output; } catch (Exception e) { return null; } }
个人比较懒,就懒得跑程序再截效果图了,由于代码是拿工作中使用代码更改而成,比较粗糙,只此记录一个实现思路。
- Android如何将一张图片裁成圆形/圆角矩形/特殊形状
- Android 将一张图片变为圆形图片
- github项目之自定义图片形状(圆形和圆角矩形)
- 图片圆形,矩形圆角
- 利用Quartz2D,将一张图片画到一个特殊形状的背景图片上
- android 图片转 圆形和圆角矩形
- android 图片转 圆形和圆角矩形
- Android 自定义 RoundImageView 实现圆角矩形或圆形图片
- Android 自定义Drawable 实现圆角矩形和圆形图片
- 自定义圆角矩形图片/圆形图片
- Android 绘制圆角图片(圆形图片,圆角矩形图片,圆角正方形图片)
- 将矩形图片绘制成圆形图片
- 自定义圆形或者圆角矩形图片
- Android自定义View——可设置形状(圆形、圆角矩形、椭圆)的ImageView,抗锯齿
- Android中绘制圆角矩形图片及任意形状图片
- Android中绘制圆角矩形图片及任意形状图片
- Android中绘制圆角矩形图片及任意形状图片
- Android长方形图片生成正圆形,以及矩形图片生成圆角
- MongoDB 备份与恢复的实践
- OCP-1Z0-052-V8.02-83题
- R 高级数据管理
- 定时事件
- hdu-1248-寒冰王座
- Android如何将一张图片裁成圆形/圆角矩形/特殊形状
- 2013新炬网络数据库大师技术分享会
- QT连接mysql、oracle数据库可执行程序的移植性问题
- Linux Gcc常用命令
- Unicode码表
- 千以内的素数--char3
- 警惕!10大食物让你越吃越丑
- Java虚拟机JVM内存分区及代码执行机制
- 蒙特罗卡π算法(C++语言描述)