在上一節中將到將若干張圖片拼接成爲一張圖片。可是這種簡單的操做每每不能知足實際的需求,有時咱們會須要給圖片添加上個性化的邊框,來更好的展現圖片。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的邊框。