android图像处理系列之五--给图片添加边框(中)
来源:互联网 发布:西门子plc模拟量编程入门 编辑:程序博客网 时间:2024/05/15 04:42
前面一篇讲到给图片加边框的方式,只能给图片加一些有规则的边框,如果想加一些比较精美的效果,就有点麻烦了。下面就给出解决这个问题的思路。
思路是:一些比较精美的花边图片我们是很难用代码控制,就目前本人水平是达不到,不排除牛人,再说了PS那些效果都是程序员做出来,肯定有实现的方法,这可能就要涉及很复杂的图形学。扯远了,接来说怎么用那些精美的花边做为图片的边框。简单的方式是用两张图片叠加。最简单的一种是本文介绍的,用透明的PNG格式图片。因为android是支持PNG图片处理的,而且PNG图片有透明度值,所以,添加那些花边边框可以先把图片做成全透明的(美工做图片的时候可以先创建一张全透明图片,再往图片上添加花边。),然后再叠加上去就OK了。要注意的是,边框有大小,最好是大一点,如果要处理的图片比较大,可以先将缩放到一定比例,再添加边框;如果边框比图片大,先要对边框进行缩放,具体缩放见前面的android图像处理系列之二--图片旋转、缩放、反转,这里面就不贴代码了。
废话少说,下面看效果图:(截图的时候图片大小不一样,比较丑)
+ =
代码:
这里的res是边框图片,还是一样,不建议放到drawable下面,最后是放到assets目录,原因就不用说了吧
/** * 添加边框 * @param bm 原图片 * @param res 边框资源 * @return */ private Bitmap addBigFrame(Bitmap bm, int res) { Bitmap bitmap = decodeBitmap(res); Drawable[] array = new Drawable[2]; array[0] = new BitmapDrawable(bm); Bitmap b = resize(bitmap, bm.getWidth(), bm.getHeight()); array[1] = new BitmapDrawable(b); LayerDrawable layer = new LayerDrawable(array); return drawableToBitmap(layer); } /** * 将Drawable转换成Bitmap * @param drawable * @return */ private Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565); Canvas canvas = new Canvas(bitmap); // canvas.setBitmap(bitmap); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; } /** * 将R.drawable.*转换成Bitmap * @param res * @return */ private Bitmap decodeBitmap(int res) { return BitmapFactory.decodeResource(mContext.getResources(), res); }
android技术上如有疑问可以问我,有问必答.
爱品茶的盆友,光顾小店(谢谢,能收藏最好了):
http://lancezone.taobao.com
专注移动开发!继续前行~
0 0
- android图像处理系列之五--给图片添加边框(中)
- android图像处理系列之五--给图片添加边框(中)
- android图像处理系列之五--给图片添加边框(中)
- android图像处理系列之四--给图片添加边框(上)
- android图像处理系列之四--给图片添加边框(上)
- android图像处理系列之四--给图片添加边框(上)
- android图像处理系列之六--给图片添加边框(下)-图片叠加
- android图像处理系列之六--给图片添加边框(下)-图片叠加
- android图像处理系列之六--给图片添加边框(下)-图片叠加
- android给图片添加边框
- 【Android图像处理】图片叠加/给图片添加纹理
- android项目 之 记事本(12) ----- 图片的等比例缩放及给图片添加边框
- android图像处理系列之七--图片涂鸦,水印-图片叠加
- android图像处理系列之三--图片色调饱和度、色相、亮度处理
- android图像处理系列之三--图片色调饱和度、色相、亮度处理
- android图像处理系列之三--图片色调饱和度、色相、亮度处理 (转)
- android图像处理系列之三--图片色调饱和度、色相、亮度处理
- android图像处理系列之三--图片色调饱和度、色相、亮度处理
- Spring AOP 实现原理与 CGLIB 应用
- 我有台车开了3年了,现在想出手,有好的二手车交易网站推荐不?
- 虚函数表合并的问题
- AFNetworking-2.0.3 使用方法
- 在jsp界面中对字符串进行截取
- android图像处理系列之五--给图片添加边框(中)
- inotify -- Linux 2.6 内核中的文件系统变化通知机制
- JAVA随机生成文件名:当前年月日时分秒+五位随机数
- unity 3d快熟使用KGFMapSystem开发小地图
- Java程序如何读取xxx.properties配置文件
- 如果经常使用linux命令,技巧你需要必备
- 字符编码杂谈
- android:inputType参数类型说明
- VS下OPenssl环境配置,个人些出现的问题及解决