2013-05-02 42 views
0

我有一些ImageView's,使用ImageLoader或類似技術使角落變圓很麻煩。使用佈局來使圓角對圖像產生影響

我可以簡單地製作一個LinearLayout來覆蓋圖像嗎? (或將圖像設置爲其背景?)例如,如果佈局具有圓角,它會隱藏下面的圖像部分以創建圓角的角色效果嗎?

我一直在嘗試玩這個(具體使用圖像作爲背景),似乎無法隱藏圖像的角落。

回答

1

好,用的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/幾乎相同的油漆在畫布上,但做一次,往往你想重用。

0

如果您使用Universal Image Loader,則可以改爲在圖像的角落四捨五入。

DisplayImageOptions options = new DisplayImageOptions.Builder()    
     .displayer(new RoundedBitmapDisplayer()) 
     .build(); 
ImageLoader.getInstance().displayImage(imageUrl, imageView, options);