萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 安卓開發 >> android中圓角圖像生成方法

android中圓角圖像生成方法

   這篇文章主要介紹了android中圓角圖像生成方法,涉及Android處理圓角圖像的技巧,需要的朋友可以參考下

  本文實例講述了android中圓角圖像生成方法。分享給大家供大家參考。具體分析如下:

  在android開發中為了美觀,常常要求ImageView中顯示出圓角圖像的效果,這個如何實現?

  這裡總結了網上的最優方法:將圖像處理成圓角,然後在加載給ImageView顯示,代碼如下:

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public Bitmap getRoundedCornerBitmap(Bitmap bitmap, int pixels) { Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap .getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242; final Paint paint = new Paint(); final Rect rect = new Rect(0,0,bitmap.getWidth(),bitmap.getHeight()); final RectF rectF = new RectF(rect); paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawRoundRect(rectF, pixels, pixels, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return output; }

  附上一張效果圖:

  這個方法沒有一點問題,但是,如果加載的圖像過大的話,這種方法需要耗時,這樣對於大量的ImageView而言,刷新就會出現卡頓或者閃爍的問題了,如何解決這個問題呢?

  我覺得,如果是這樣,那麼我們只能捨棄這種方法,退而求其次,我們夠建兩層ImageView,第一層是原始方角圖像A,第二層是一個特殊的資源圖B,它的大小與原圖一樣,我們假設A按照上面的方法得到的圓角圖像為C,那麼定義圖像T=A-C,然後我們把T改為我們需要的背景顏色,這樣B=T(背景色),最後的效果就是A在下面,B在上面,四個角是圓角效果,方角圖像被覆蓋在了B下面了。這樣做就省去了直接圖像處理所造成的耗時問題。但是,如果是圖像大小較小,數量不大的情況下, 本人還是建議使用第一種方法,畢竟原版的效果好,盜版還是盜版啊呵呵!

copyright © 萬盛學電腦網 all rights reserved