Android自定义后台xml发送属性

标签 android android-layout android-xml

我有以下 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/

相关文章:

Android 检查应用程序状态

android - 具有滚动背景的 Recyclerview

java - 在包 'showAsAction' 中找不到属性 'android' 的资源标识符

java - BitmapFactory.decodeByteArray() 返回 NULL

javascript - 在 Ionic 中处理 CORS 问题

android dialogs UX 体验 - 一个对话框中的两个 ListView 或微调器

android - 避免在 TextView 中硬编码字符串

android - 将图像定位在形状的右下角

android - 使用 Phonegap 设置图像文件名

android - AutoCompleteTextView 在软键盘上的清晰焦点关闭