如何将可绘制对象分配给小部件按钮

时间:2019-01-10 00:29:37

标签: java android android-studio

希望有人可以提供帮助。不知道这是否可能,但是可以。

我有一个包含单个按钮的Android小部件。我想以编程方式将drawable设置为背景。例如,在标准活动中,我可能会做...

Button mybutton = (Button) findViewById(R.id.abutton);
GradientDrawable gd = new GradientDrawable();
gd.setCornerRadius(45);
gd.setColor(Color.parseColor("#FFFFFF));
mybutton.setBackground(gd);

我要这样做的原因是,以编程方式将小部件按钮的颜色更改为用户选择的颜色,同时还要保持按钮的圆角,如上面的可绘制对象所定义。

我已经确定可以像这样更改小部件按钮的颜色。

RemoteViews views;
views = new RemoteViews(context.getPackageName(), R.layout.mylayout);
views.setInt(R.id.widgetbutton,"setBackgroundColor", Color.parseColor(widgethexcolor));

但是这会将按钮重置为默认的矩形形状,而没有圆角,因此我希望将其设置为可绘制的。

有什么想法吗?

谢谢!

自然

1 个答案:

答案 0 :(得分:0)

您可以通过调用Drawable.setColorFilter(int color, PorterDuff.Mode mode)Drawable.setColorFilter(ColorFilter colorFilter)来更改颜色。我认为这种方法可以防止您遗失圆角。