【发布时间】:2010-05-05 04:49:39
【问题描述】:
为什么改变默认按钮的颜色使它看起来像矩形?我不想为此使用自定义背景图像。 我想以编程方式在少数情况下更改屏幕上许多小按钮的颜色。 谁能给个解决办法?
附: ==> 阅读本文似乎没有解决方法 http://groups.google.com/group/android-beginners/browse_thread/thread/e1313e2c98e9c52b
或者有没有?
【问题讨论】:
标签: android
为什么改变默认按钮的颜色使它看起来像矩形?我不想为此使用自定义背景图像。 我想以编程方式在少数情况下更改屏幕上许多小按钮的颜色。 谁能给个解决办法?
附: ==> 阅读本文似乎没有解决方法 http://groups.google.com/group/android-beginners/browse_thread/thread/e1313e2c98e9c52b
或者有没有?
【问题讨论】:
标签: android
改变颜色:
Drawable d = findViewById(R.id.button_name).getBackground();
PorterDuffColorFilter filter = new PorterDuffColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP);
d.setColorFilter(filter);
去除颜色:
Drawable d = findViewById(R.id.button_name).getBackground();
findViewById(R.id.button_name).invalidateDrawable(d);
d.clearColorFilter();
【讨论】:
您可以使用以下 XML 脚本代替将颜色指定为背景。首先让我告诉你,Button 视图默认是一个矩形,所以当你在布局中添加一个按钮视图时,它会分配一个默认的背景样式,因此你可以看到它带有圆角。当您分配背景时,默认的 stype/主题将被覆盖,您将获得原始形式的按钮,因此您必须根据您的要求应用主题/stype。 如果您想要几个按钮,那么您可以使用以下 XML scrupt。您只需在 android 项目的资源下的可绘制对象中创建一个 .xml 文件。然后将该 .XML 文件指定为按钮视图的背景。看看会发生什么……
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffff"/>
<corners android:radius="6dp"/>
<padding android:left="3dp" android:top="2dp"
android:right="3dp" android:bottom="2dp" />
</shape>
【讨论】: