我們都知道點九圖的作用,這裡就不多說了,反正就是各種好各種美如畫,這次我們把點九圖用到自定義控件中。我們用drawBitmap來繪制點九圖,然而似乎有點問題。
我找了這張圖來示範一下:
這是用drawBitmap的代碼:
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bubble);
Rect rect = new Rect(l, t, r, b);
canvas.drawBitmap(bitmap, null, rect, new Paint());
然後編譯運作。
哎呦,我去!這是什麼鬼!說好的美如畫呢。
沒事,我們換兩句代碼來實作。當繪制點九圖時,我們要用到NinePatch這個類,代碼改成這樣:
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bubble);
NinePatch ninePatch = new NinePatch(bitmap, bitmap.getNinePatchChunk(), null);
RectF rectF = new RectF(l, t, r, b);
ninePatch.draw(canvas, rectF);
再運作一次
看,妥妥的。