2012-08-10 83 views
0

我有一个方形可绘制选择器。我想使它成为基于某个View的圆角矩形形状。任何人有一个想法如何实现这一目标?我正在使用此可绘制的android:background方形可绘制,使其成为一个圆角矩形形状

编辑:对不起,我忘了提及,可绘制的意思是一个PNG文件。

+0

你能提供更多关于*'的信息吗?我想使它成为基于某个视图的椭圆形状*吗? – Luksprog 2012-08-10 08:48:18

+0

我将在适配器内的视图中将其设置为背景。如果View是偶数行,我会将视图的背景设置为一个圆角矩形。 – 2012-08-10 12:20:25

回答

0

您必须制作两个略有不同的XML文件。如果它与您正在使用的视图匹配,则使用一个,如果不使用另一个...,则创建新的XML,基本上复制并粘贴您已有的一个(可能会在文件名的末尾附加“_rounded”) 。然后,在您想要圆角的文件中,只需添加此行,然后按照您认为合适的方式调整它(在dip中)。

<corners 
    android:radius="4dip" 
    /> 

[编辑]

如果是这样的话,你需要2个独立的.9.png图像。一个是方形的,一个是圆形的。像我上面提到的XML一样使用类似的命名约定。使用相同的测试语句...

if(viewMeetsCriteria) 
    otherView.setBackgroundResource(R.drawable.square); 
else 
    otherView.setBackgroundResource(R.drawable.square_rounded); 

有关创建.9.png文件的其他信息,请参阅google教程。 9补丁工具位于您的{sdkdir}/tools /中。 9补丁图像是可以根据占用的空间量自由拉伸的图像,不会看起来不连贯或迫使您制作多个不同的图像。 Dev页面信息在这里:http://developer.android.com/tools/help/draw9patch.html

+0

对不起,我忘了提及,这是一个PNG文件,我表示为可绘制文件。 – 2012-08-10 12:49:56

+0

查看最新回复 – RyanInBinary 2012-08-10 13:22:59

+0

是的,我可以做到这一点,我只是想知道如果我目前只有R.drawable.square?我可以使用它并让Android使边缘变圆? – 2012-08-16 02:57:05