Android可绘制参数

pba*_*ris 10 android

有没有可能有类似的东西

绘制/ myshape.xml

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

    <solid android:color="{0}" />
</shape>
Run Code Online (Sandbox Code Playgroud)

然后从java类中获取参数的可绘制传递值.就像是

Drawable myshape = ???.getDrawableWithParameters(R.drawable.myshape, 0x00ff00);
Run Code Online (Sandbox Code Playgroud)

Bal*_*des 0

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

GradientDrawable d = (GradientDrawable) getResources().getDrawable(R.drawable.yourid);
Run Code Online (Sandbox Code Playgroud)

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

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