我有以下 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>
如您所见,它只是一个带有圆角的形状。我将它用作 Activity 布局的背景,如下所示:
android:background="@drawable/rounded_corners"
文件中的形状当前设置为白色。在不同的布局中,我需要不同的颜色。我是否需要为每种颜色创建不同形状的 xml 文件?我需要一种方法来在布局中指定将什么颜色发送到背景,这样我就可以对我想要的任何颜色使用相同的 xml。
谢谢。
最佳答案
Do I need to create a different shape xml file for each color?
- 是的,如果您想为布局的 xml 文件本身的不同布局文件应用不同的颜色
- 否,如果您从其java( Activity )文件为不同的布局文件应用不同的颜色。
选项 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 )文件
Button mButton = (Button) findViewById(R.id.mButton);
ShapeDrawable rounded_corners = (ShapeDrawable )mButton.getBackground();
rounded_corners.getPaint().setColor(Color.RED);
希望对您有所帮助!!
关于Android自定义后台xml发送属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16857202/