android - 如何以编程方式修改可绘制对象的颜色

标签 android android-drawable

嗨,我有一个可绘制的 xml 形状,它用作 View 的背景。需要根据情况在代码中更改其颜色。

所以我正在做

  ShapeDrawable d =  (ShapeDrawable) getResources().getDrawable(R.drawable.shape1);

  d.getPaint().setShader(sd1);

但是 getDrawable 返回一个渐变可绘制对象,将其转换为 ShapeDrawable 会生成错误。

那么如何在代码中获取shapeDrawable并修改其属性。

最佳答案

我能够通过转换为 GradientDrawable 而不是 ShapeDrawable 来解决此问题。

GradientDrawable shape = (GradientDrawable) getResources().getDrawable(R.drawable.shape1);

    shape.setColor(Color);

当我创建一个基于 Holo.Dialog 主题的自定义样式的 Activity 时,我使用了它。

关于android - 如何以编程方式修改可绘制对象的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18212945/

相关文章:

java - INSTALL_FAILED_MISSING_SHARED_LIBRARY 和意外的顶级异常

android - 在 Android 中获取基站信息

android - 动画 ActionBar 的图标

android - 使 RelativeLayout 可检查

Android 可绘制椭圆形图像在设计 View 和设备上绘制不同

android - 如何在 Android drawable 中为环形制作圆角

android - wrap_content 在按钮高度android中不起作用

java - 自定义控件中的android数据绑定(bind)

java - OpenGL ES 2.0 Android - 立方体旋转错误

Android EditText,获取所有状态