如何在一个drawable中添加圆角我在Android中用作背景?

时间:2010-06-30 15:02:05

标签: android layout rounded-corners

我有一个特定的drawable,我在我的应用程序中用作背景。它不是纯色 现在我想为这个drawable添加圆角。

我只发现圆角可用渐变色或纯色作为背景而不是另一种可画面。

是否有另一种简单的方法可以将圆角添加到drawable中?

4 个答案:

答案 0 :(得分:3)

使用 AQuery 使Drawable或Downloaded图像成圆角。

http://code.google.com/p/android-query/wiki/ImageLoading

注意:这对于使用图像执行异步任务非常有效,并且提供了很多功能。

从此处下载API: http://code.google.com/p/android-query/downloads/list

代码来制作图片的圆角:

AQuery aq = new AQuery(this);

// Image URL to download
String url = "http://www.vikispot.com/z/images/vikispot/android-w.png";

ImageOptions options = new ImageOptions();
options.round = 15;

aq.id(R.id.image).image(url, options);

答案 1 :(得分:0)

你可以使用“图层列表”drawable完成你想要的吗?它允许您组合形状和图形绘制,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/icon_home_button_img"/>
        <item android:drawable="@drawable/icon_home_shape_overlay"/>
</layer-list>

在这种情况下,shape_overlay是:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#60000000"/>
    <stroke android:width="3dp" color="#ff000000"/>
    <corners android:radius="10dp" />
</shape>

我正在使用此功能在图像上获得“选定”效果。不过,它对我有用,因为有问题的图像是一个图标,背景与包含视图背景的颜色相同(都是白色)。

我看到的另一个选项是修改drawable,使其具有圆角。

答案 2 :(得分:0)

对于我需要它的情况,我得到了一个充满渐变和圆角的形状。这看起来有点像我想要达到的效果。

如果你有一个纹理或其他一些复杂的drawable你不能用形状构建,你似乎需要在你的项目中添加一个圆角的drawable。或者像你在question中解释的那样自己构建圆角。

答案 3 :(得分:0)

你可以用你的drawable创建一个Nine-patch file。根据需要,中心与您当前的背景相匹配,边角为圆角。 Android文档显示how to create Nine-patch files,您可以使用Draw nine-patch tool进行构建。

这就是SDK如何为弹出框等创建圆角渐变背景样式。