3

我正在尝试使用另一个类更改小部件的颜色。但我找不到要更改的布局,因为此布局位于另一个 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>

这就是我单击更改颜色按钮时班级所做的事情:

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”上。

4

0 回答 0