1)是否可以创建可绘制的示例
static Bitmap.Config conf = Bitmap.Config.ARGB_8888;
static Bitmap bmp = Bitmap.createBitmap(100, 100, conf);
// something draw
// eventually convert to DrawableBitmap
然后将其/ asiggn转换为/ put in 资源,以在资源ID参数的函数中使用,如:
public void setWidgetLayoutResource (int widgetLayoutResId)
或
2)是否可以动态绘制以更改R.drawable.something.bmp中的图像?
这一切都是为了将setWidgetLayoutResource()中widget的颜色更改为任何颜色,而不是固定为具体资源的颜色
答案 0 :(得分:0)
我自己的回答
这个问题与我的其他问题有关:Android PreferenceScreen 而且我是这样做的:
ColorLinesView.java
public class ColorLinesView extends View
{
private static GradientDrawable gdDefault = new GradientDrawable();
public static int fillColor;
public ColorLinesView(Context context, AttributeSet attrs)
{ super(context, attrs);
}
@Override protected void onDraw(Canvas cv)
{
gdDefault.setColor(fillColor);
gdDefault.setCornerRadius(4);
gdDefault.setStroke(2, 0xffbbbbbb);
this.setBackgroundDrawable(gdDefault);
}
}
<强> color_lines_accesory.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<android.swp.ColorLinesView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/colorBoxLines"
android:layout_width="52dp"
android:layout_height="26dp"
android:gravity="right"
android:layout_marginRight="6dp" />
最后以编程方式创建PreferenceScreen,添加类别首选项&#34; somePref&#34;:
ColorLinesView.fillColor = 0xff00ff00; // examply green
somePref.setWidgetLayoutResource(R.layout.color_lines_accesory);
和OnPreferenceClickListener()中相同的两行(带有新颜色)用于&#34; somePref&#34;类别,使用颜色选择器改变颜色。
结果: