【问题标题】:Why changing Color of Default Button makes it look RECTANGLE in Android?为什么更改默认按钮的颜色会使它在 Android 中看起来像 RECTANGLE?
【发布时间】:2010-05-05 04:49:39
【问题描述】:

为什么改变默认按钮的颜色使它看起来像矩形?我不想为此使用自定义背景图像。 我想以编程方式在少数情况下更改屏幕上许多小按钮的颜色。 谁能给个解决办法?

附: ==> 阅读本文似乎没有解决方法 http://groups.google.com/group/android-beginners/browse_thread/thread/e1313e2c98e9c52b

或者有没有?

【问题讨论】:

标签: android


【解决方案1】:

改变颜色:

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();

【讨论】:

    【解决方案2】:

    您可以使用以下 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>
    

    【讨论】:

    • 使用上面的 xml 作为按钮背景会给出一些形状,但再次以编程方式将其颜色更改为红色会导致其形状变为矩形。
    猜你喜欢
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 2013-12-24
    • 1970-01-01
    • 2015-04-21
    相关资源
    最近更新 更多