2012-05-29 85 views
9

我想要做的事情會更好用示例圖像。正如你可以在下面看到的,我有一個灰色的背景,ontop是一個容器,其中包含一些包含圖像的填充。容器也有輕微的陰影。添加框架或邊框到ImageView和陰影

我想知道的是,如果在我的layout.xml中這樣做是非常痛苦的方式嗎?在一個普通的HTML文檔中,這很容易。但是由於這是針對移動應用和多種屏幕分辨率等的,所以這有點困難。

有什麼建議嗎?

enter image description here

編輯:我使用9patch圖像最終定居。 Everyting在創建時非常流暢,但是當我在應用程序中實際使用它時,我在圖像的右側和底部看到了這些黑色條紋。陰影似乎工作,這是一個非常輕的dropshadow ..但那些織補條紋?

enter image description here

回答

5

這可以用適當的填充和9補丁圖像來完成。看到這個link,可能是它可以幫助你。

+0

是最好的辦法去做。謝謝! – Tiwaz89

+0

請你能再次看看我編輯過的帖子,看看我用9patch得到的結果嗎?看起來圖像右側和底部都有這些黑色條紋。不明白他們爲什麼在那裏? – Tiwaz89

+0

你可以發佈你的9個補丁文件嗎,看起來這個補丁有一些問題。 – orchidrudra

5

具有ImageView的2個屬性android:backgroundandroid:src

http://developer.android.com/reference/android/widget/ImageView.html

創建空白白框與陰影(Photoshop的推薦)。

所以才這樣做

<ImageView android:id="@+id/imageView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/image" 
    android:background="@drawable/whiteFrame" 
    android:padding="10dp" > 
</ImageView> 
+0

非常感謝你的讚賞。這仍然可以在不同的屏幕密度上工作嗎?由於圖像和whiteFrame無法在具有不同分辨率的不同手機上調整大小,請改正? – Tiwaz89

+0

使用九個補丁圖像,請參閱@ orchidrudra提供的鏈接。 –

+0

請你能再次看看我編輯過的帖子,看看我用9patch得到的結果嗎?看起來圖像右側和底部都有這些黑色條紋。不明白他們爲什麼在那裏? – Tiwaz89

15

您可以通過編寫一個XML文件(說editBorder.xml)在繪製文件夾提供了一個邊界的觀點:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" > 

    <stroke 
     android:width="5dp" 
     android:color="#EBDDE2" /> 

    <padding 
     android:bottom="2dp" 
     android:left="2dp" 
     android:right="2dp" 
     android:top="4dp" /> 

    <gradient 
     android:centerColor="@color/white" 
     android:endColor="@color/white" 
     android:startColor="@color/white" /> 

    <corners android:radius="8dp" /> 

</shape> 

,並提供此邊框,使用聲明的ImageView爲android:background="@drawable/editBorder"

這應該可以解決你的問題。 :)

+0

感謝這看起來很有前途,我只是試過這個,但得到了一個異常說:「無法將drawable/editBorder轉換爲drawable」。有任何想法嗎? – Tiwaz89

+1

嘗試:清理你的代碼,編譯並再次運行。或者,因爲您不能給大寫字母的XML文件的名稱,請給edit_border.xml – Shrikant