我有以下xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF"/>
<corners android:radius="10dp"/>
<padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" />
</shape>
正如你所看到的,它只是一个带圆角的形状。我将它用于活动布局中的背景,如下所示:
android:background="@drawable/rounded_corners"
文件中的形状当前设置为白色。在不同的布局中,我需要不同的颜色。我是否需要为每种颜色创建不同形状的xml文件?我需要一种方法来在布局中指定要发送到背景的颜色,这样我就可以将相同的xml用于我想要的任何颜色。
感谢。
答案 0 :(得分:1)
Do I need to create a different shape xml file for each color?
选项2的解决方案:
// shape drawable(rounded_corners.xml)
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF"/>
<corners android:radius="10dp"/>
<padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" />
</shape>
//布局文件
<Button
android:id="@+id/mButton"
...
android:background="@drawable/rounded_corners"
/>
// java(Activity)file
Button mButton = (Button) findViewById(R.id.mButton);
ShapeDrawable rounded_corners = (ShapeDrawable )mButton.getBackground();
rounded_corners.getPaint().setColor(Color.RED);
我希望它会有所帮助!!