【问题标题】:Android drawable with parameters带有参数的 Android 可绘制对象
【发布时间】:2012-09-05 23:35:03
【问题描述】:

有没有可能有类似的东西

drawable/myshape.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle">

    <solid android:color="{0}" />
</shape>

然后从 java 类中获取这个可绘制的传递值作为参数。类似的东西

Drawable myshape = ???.getDrawableWithParameters(R.drawable.myshape, 0x00ff00);

【问题讨论】:

标签: android


【解决方案1】:

如果您按照示例中所示的方式创建shape,那么它将可以作为GradientDrawable 访问。

GradientDrawable d = (GradientDrawable) getResources().getDrawable(R.drawable.yourid);

如果您查看文档(上面的链接),您可以看到所有功能,您可以从 GradientDrawable 对象访问。您还可以稍后使用此对象以编程方式设置背景和边框颜色和宽度。

我不能 100% 确定,每次你在 xml 中创建一个形状时,你都会得到一个GradientDrawable。我需要自己修改形状上的一些属性,并在尝试转换为其他类型时发现 ClassCastExceptions Drawables

【讨论】:

  • 这与形状无关。它可以是一个图层列表。参数是我要求的。如果有一种方法可以像在字符串中那样在 drawable 中传递参数
  • 你想只使用它的 id 和你喜欢的参数将颜色和大小等参数传递给可绘制对象吗?不,我不认为那是可能的。这将违反 oop 原则,每个 Java 开发人员都应该遵循(在我看来),并且完全没有必要,因为所有这些 Drawable 子类都有一个非常友好的接口来处理这些事情。
猜你喜欢
  • 2013-03-25
  • 1970-01-01
  • 2012-01-13
  • 2012-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多