如何在窗口小部件中创建按钮,在按钮上更改其颜色?

时间:2015-06-27 18:27:37

标签: android

我正在搜索stackOverflow和互联网,但我无法找到适当的信息。

当然我知道什么是RemotViews,正常活动中onClick方法的基础知识,但在小部件中它太复杂了。我一直在搜索:PendingIntentIntent,但没有找到任何内容。

问题/我想要达成的目标:

在我的主屏幕小部件上,我有一个button。当我点击时,我希望它的颜色改变,再次点击它,我希望它被设置为初始颜色。进一步点击,我希望这种情况发生了翻转。

希望有人帮助我:)。

2 个答案:

答案 0 :(得分:0)

在活动布局文件中,将按钮设置为

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@color/white"
    android:onClick="onClick"/>

以默认白色作为背景。然后在你的java代码中。

public void onClick(View view) {
    ColorDrawable colorDrawable = (ColorDrawable)view.getBackground();
    int buttonColor = colorDrawable.getColor();
    if (buttonColor == R.color.white) {
        view.setBackgroundColor(getResources().getColor(R.color.red));
    } else {
        view.setBackgroundColor(getResources().getColor(R.color.white));
    }
}

每次按下按钮时都会交换颜色。

答案 1 :(得分:0)

您应该尝试使用选择器可绘制颜色状态列表并将其设置为按钮的背景。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:color="#ffff0000"/> <!-- pressed -->
    <item android:state_focused="true"
          android:color="#ff0000ff"/> <!-- focused -->
    <item android:color="#ff000000"/> <!-- default -->
</selector>