【问题标题】:How to assign a drawable to a widgets button如何将可绘制对象分配给小部件按钮
【发布时间】:2019-01-10 00:29:36
【问题描述】:

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

我有一个由单个按钮组成的 Android 小部件。我想以编程方式将可绘制对象设置为背景。例如,在我可能会做的标准活动中......

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));

但这会将按钮重置为其默认的矩形形状,没有圆角,所以我更愿意让它成为可绘制的。

有什么想法吗?

谢谢大家!

纳特

【问题讨论】:

    标签: java android android-studio


    【解决方案1】:

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

    【讨论】:

    • 您好,感谢您的回复,但我不确定如何将其应用于 RemoteView? IE。小部件按钮?谢谢
    • 啊,对不起,我没有理解你的全部问题。我不熟悉RemoteViews,但从他们的文档看来,他们的能力是有限的,“而且这个类提供了一些用于修改膨胀层次结构的基本操作”(来源:developer.android.com/reference/android/widget/RemoteViews
    猜你喜欢
    • 1970-01-01
    • 2021-02-26
    • 2019-04-15
    • 2011-02-28
    • 2017-01-13
    • 2014-01-21
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多