以编程方式创建形状背景时,如何使用android.graphics.Color设置笔触颜色?



我有一个函数,它使用 android.graphics.Color 以编程方式创建一个形状,用于笔触颜色;

GradientDrawable shape = new GradientDrawable();
shape.setShape(GradientDrawable.RECTANGLE);        
shape.setStroke(3, borderColor);

setStroke 的第二个参数采用 ColorStateList。如何将颜色转换为颜色状态列表?

我尝试以编程方式创建一个;

int[][] states = new int[][] {
new int[] { android.R.attr.state_enabled}, // enabled
new int[] {-android.R.attr.state_enabled}, // disabled
new int[] {-android.R.attr.state_checked}, // unchecked
new int[] { android.R.attr.state_pressed}  // pressed
};
int[] colors = new int[] {
Color.toARGB(),
Color.toARGB(),
Color.toARGB(),
Color.toARGB(),
};
ColorStateList myList = new ColorStateList(states, colors);

但这行不通。如何從 android.graphics.Color 設定描滅顏色?

解决: setStroke正在采取颜色参数。我的代码的其他部分存在问题。

ColorStateLists是从应用程序资源目录的"color"子目录目录中定义的XML资源文件创建的。XML 文件包含一个"选择器"元素,其中包含许多"项"元素。例如:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true"
android:color="@color/sample_focused" />
<item android:state_pressed="true"
android:state_enabled="false"
android:color="@color/sample_disabled_pressed" />
<item android:state_enabled="false"
android:color="@color/sample_disabled_not_pressed" />
<item android:color="@color/sample_default" />
</selector>

这定义了一组状态规范/颜色对,其中每个状态规范指定视图必须处于或不处于状态的一组状态,颜色指定与该规范关联的颜色。

最新更新