android 中給圖片加圓角效果
在android給圖片添加圓角效果有兩種方法,一種是用java代碼來重繪圖片,另一種方法是用xml來實現,這裏給出一個Java實現重繪製圖片的方法:public static Bitmap getRoundCornerBitmap(Bitmap bitmap, float roundPX){ int width = bitmap.getWidth(); int height = bitmap.getHeight(); Bitmap bitmap2 = Bitmap.createBitmap(width, height, Config.ARGB_8888); Canvas canvas = new Canvas(bitmap2); final int color = 0xff424242; final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, width, height); final RectF rectF = new RectF(rect); paint.setColor(color); paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); canvas.drawRoundRect(rectF, roundPX, roundPX, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return bitmap2; }
用法demo: XXX.getRoundCornerBitmap(BitmapObj, 10.0f);
另一種方法就是用XML實現,原理就是遮罩效果,如果有童鞋做過web開發的就知道在CSS中有一個叫層的概念,android中的圓角也是利用這中原理實現的:
demo引自OSchina:https://www.oschina.net/question/54100_34033
一般來說圖片加圓角可以使用 Java 的方式來進行, 對圖片略加處理即可, 但也可以使用純XML+Nice-Patch圖片來進行, 這樣的速度會更快. 如果背景是純色的情況下建議使用此方法.
原理則是利用frameLayout在圖片上加一個遮蓋圖片, 從而達到圓角效果.
背景圖片:
一張中間透明, 四個邊角帶有顏色的遮蓋圖片即可, 可以使用ps畫一個帶圓角的矩形, 然後反選並填充邊角顏色即可.
參考圖片如下
Layout文件:
<!-- profile image --> <framelayout android:layout_height="48dp" android:layout_width="48dp"> <imageview android: android:layout_height="fill_parent" android:layout_width="fill_parent"> <!-- image corner --> <imageview android:background="@drawable/images_border_radius" android:layout_height="fill_parent" android:layout_width="fill_parent"> </imageview> </imageview> </framelayout>
其中第一個ImageView為目標圖片, 而第一個ImageView則為遮蓋層.
最後更新:2017-04-02 22:16:24
上一篇:
android應用開發全程實錄
下一篇:
Android的TextView/EditText使用CharacterStyle&SpannableString來處理圖片顯示、字體樣式、超鏈接等
HTAP數據庫 PostgreSQL 場景與性能測試之 8 - (OLTP) 多值類型(數組)含索引實時寫入
別了,我的大學,我的朋友們
python中動態加載模塊和類方法實現
顯示時間的js腳本
error: png.h not found.
互聯網巨頭“狂賭”地圖 百度成立LBS事業部
PostgreSQL 10 + PostGIS + Sharding(pg_pathman) + MySQL(fdw外部表) on ECS 部署指南(適合新用戶)
深度學習在智能視頻分析和理解中的應用
C#設置文件夾用戶權限
PHP在瀏覽器上跟蹤調試的方法以及使用ChromePhp、FirePHP的簡單介紹