我有一些ImageView's
,使用ImageLoader
或類似技術使角落變圓很麻煩。使用佈局來使圓角對圖像產生影響
我可以簡單地製作一個LinearLayout
來覆蓋圖像嗎? (或將圖像設置爲其背景?)例如,如果佈局具有圓角,它會隱藏下面的圖像部分以創建圓角的角色效果嗎?
我一直在嘗試玩這個(具體使用圖像作爲背景),似乎無法隱藏圖像的角落。
我有一些ImageView's
,使用ImageLoader
或類似技術使角落變圓很麻煩。使用佈局來使圓角對圖像產生影響
我可以簡單地製作一個LinearLayout
來覆蓋圖像嗎? (或將圖像設置爲其背景?)例如,如果佈局具有圓角,它會隱藏下面的圖像部分以創建圓角的角色效果嗎?
我一直在嘗試玩這個(具體使用圖像作爲背景),似乎無法隱藏圖像的角落。
好,用的FrameLayout或RelativeLayout的,你可以很容易的ImageView一樣堆在你上面的第二層:
<FrameLayout
android:layout_width="60dp"
android:layout_width="60dp">
<ImageView android:id="@+id/myimage"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/myrealimage" />
<ImageView android:id="@+id/my_roundedcorner_overlay"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/myoverlaywithroundedcornersandtransparentcenter" />
</FrameLayout>
然而,被警告這將導致透支,讓您的佈局更加複雜。
你也可以將真實圖像設置爲背景ImageView和覆蓋圖像作爲ImageViews的src,但是在這種情況下不要設置填充(也可能無法從web加載圖像)再)
乾淨的解決方案是創建擴展ImageView的自定義窗口小部件並覆蓋其的onDraw方法,使用bitmapshader,類似於http://www.curious-creature.org/2012/12/11/android-recipe-1-image-with-rounded-corners/幾乎相同的油漆在畫布上,但做一次,往往你想重用。
我曾經有過同樣的問題,只是我想創建一個谷歌地圖與圓角,檢查此 問題:
Is there a way to implement rounded corners to a Mapfragment?
關鍵是要建立一個FrameLayout
,並在其中放置你的內容並在其上放置另一個具有圓角的圖像背景的佈局。
如果您使用Universal Image Loader,則可以改爲在圖像的角落四捨五入。
DisplayImageOptions options = new DisplayImageOptions.Builder()
.displayer(new RoundedBitmapDisplayer())
.build();
ImageLoader.getInstance().displayImage(imageUrl, imageView, options);