Android給拼接好的Bitmap加上個性化邊框

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

相關文章
相關標籤/搜索