2012-05-29 49 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