我有这样的Drawable。我有 5 个窗口。对于每个我都使用这个 drawable 但具有不同的半径 dp 值。
为每个人创建一个 drawable 是不对的。是的,会产生很多代码,然后阅读起来会很不愉快。是否有可能以某种方式改变代码的最小变体的精神?
例如,在 dimens 中指定 dp。然后在第二个窗口中获取此维度以更改值 并为 drawable 更改值。但我试过它没有用。)
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/whiteBg"/>
<corners android:radius="10dp"/>
</shape>
有两种选择,要么用不同的半径铆接资源,要么在代码中创建它们。
半径值更容易在 dimens 中指定为 dp 并从那里读取。
要减少代码量,请创建一个方法,该方法将为您创建一个具有必要参数的形状并将其拉出。据我了解,您只需取出参数中的半径就足够了。
您可以从
shape视图GradientDrawable的背景/图片进入视图并以编程方式分配半径,如下所示:尝试在资源中创建数组。在 item 中,您记下半径的值,并且已经以编程方式从每个活动中获取所需的数组元素。