在上一节中将到将若干张图片拼接成为一张图片。可是这种简单的操做每每不能知足实际的需求,有时咱们会须要给图片添加上个性化的边框,来更好的展现图片。canvas
下面就讲一下在图片拼接后如何给bitmap添加边框。spa
操做步骤和上一篇差很少,不过区别是上章操做的是bitmap,而这一章经过操做canvas来间接操做bitmap。code
效果图以下:blog
操做步骤以下:图片
1.获取Canvas裁剪界限:ip
Rect rect = canvas.getClipBounds();
2.建立画笔,设置画笔颜色和画笔样式,并设置边框宽度内存
Paint paint = new Paint();
//设置边框颜色 paint.setColor(Color.GREEN); paint.setStyle(Paint.Style.STROKE); //设置边框宽度 paint.setStrokeWidth(20);
3.绘制Canvas区域大小的边框get
canvas.drawRect(rect, paint);
4.结束。呵呵,it
具体的代码以下:class
1.设置Bitmap边框的方法
/** * 给bitmap设置边框 * @param canvas */ private void setBitmapBorder(Canvas canvas){ Rect rect = canvas.getClipBounds(); Paint paint = new Paint(); //设置边框颜色 paint.setColor(Color.GREEN); paint.setStyle(Paint.Style.STROKE); //设置边框宽度 paint.setStrokeWidth(20); canvas.drawRect(rect, paint); }
2.调用该方法绘制边框
/** * 拼接图片 * @param bit1 * @param bit2 * @return 返回拼接后的Bitmap */ private Bitmap newBitmap(Bitmap bit1,Bitmap bit2){ int width = bit1.getWidth(); int height = bit1.getHeight() + bit2.getHeight(); //建立一个空的Bitmap(内存区域),宽度等于第一张图片的宽度,高度等于两张图片高度总和 Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); //将bitmap放置到绘制区域,并将要拼接的图片绘制到指定内存区域 Canvas canvas = new Canvas(bitmap); canvas.drawBitmap(bit1, 0, 0, null); canvas.drawBitmap(bit2, 0, bit1.getHeight(), null); //将canvas传递进去并设置其边框 setBitmapBorder(canvas); return bitmap; }
注意:setBitmapBorder(Canvas canvs)方法传递的这个canvas必须是你建立内存区域的那个canvas也就是Canvas canvas = new Canvas(bitmap);.只有传入这个canvas才会绘制bitmap的边框,若是传递的是onDraw方法的canvas则绘制的是整个View的边框。