如何在运行时更改小部件的颜色?

时间:2013-02-19 14:53:47

标签: android

我正在尝试使用其他类更改窗口小部件的颜色。但我找不到我想要改变的布局,因为这个布局是在另一个xml文件中。窗口小部件布局具有使用shape.xml作为背景的LinearLayout。我尝试了很多东西,但没有任何效果。

这是MyShape.xml:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<solid
android:color="#DDf5f5f5" />

<stroke
android:width="2dp"
android:color="#FFFFFFFF" />

<corners
android:bottomLeftRadius="7dp"
android:bottomRightRadius="7dp"
android:topLeftRadius="7dp"
android:topRightRadius="7dp" />
</shape>

这就是我点击Change Collor按钮时班级所做的事情:

public void onClick(View v) {

LayoutInflater inflater = (LayoutInflater)getApplicationContext().getSystemService(getApplicationContext().LAYOUT_INFLATER_SERVICE);
LinearLayout myRoot = new LinearLayout(getApplicationContext());
View itemView = inflater.inflate(R.layout.widget_layout, myRoot);
LinearLayout linear = (LinearLayout) itemView.findViewById(R.id.layout);

GradientDrawable sd = (GradientDrawable) linear.getBackground().mutate();
sd.setColor(picker.getColor());
}

类WidgetColorPicker使用布局“widget_color.xml”,我想要更改的LinearLayout位于“widget_layout.xml”上。

0 个答案:

没有答案