Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是有效的&;使用android可绘制形状的结构化方式?_Android_Xml_Android Background_Android Shape - Fatal编程技术网

什么是有效的&;使用android可绘制形状的结构化方式?

什么是有效的&;使用android可绘制形状的结构化方式?,android,xml,android-background,android-shape,Android,Xml,Android Background,Android Shape,我需要在我的项目中使用不同设计的几个按钮。所以我使用可绘制的形状来定制按钮 假设我需要一个圆角和绿色背景的按钮。所以我创建了一个“gree\u round\u button.xml”形状,这个效果很好。但是我需要另一个样式相同的按钮,只是背景颜色不同,所以我必须创建另一个xml文件,比如“colorName\u round\u button.xml” 为了便于理解,我将其保持简单,但对于不同的按钮可能有许多共同的样式,可能只是一个或两个属性不同。是否有任何方法可以跳过为同一设计创建多个文件?是否

我需要在我的项目中使用不同设计的几个按钮。所以我使用可绘制的形状来定制按钮

假设我需要一个圆角和绿色背景的按钮。所以我创建了一个“gree\u round\u button.xml”形状,这个效果很好。但是我需要另一个样式相同的按钮,只是背景颜色不同,所以我必须创建另一个xml文件,比如“colorName\u round\u button.xml”

为了便于理解,我将其保持简单,但对于不同的按钮可能有许多共同的样式,可能只是一个或两个属性不同。是否有任何方法可以跳过为同一设计创建多个文件?是否有任何方法,我可以用来扩展任何形状,可以通过颜色,背景颜色作为参数? 可能像这个“button.xml”这个形状将接受一个颜色参数,我可以将这个形状用于我想要使用的每个按钮,并将不同的颜色作为参数传递

在Web Css中:我可以这样做

.button {border: 1px solid #ddd;border-radius:5px;padding:20px;}
.button.green {background:green;}
有什么简单的方法可以做这样的事情吗。
谢谢。

你应该看一下背景色。这将允许你使用相同的可绘制图案,但可以用不同的颜色覆盖

例如,你可以有一个bg_circle.xml,它是一个白色的圆圈。然后使用“淡色”更改其颜色,并将单独的图标作为src

<ImageButton
    android:layout_width="75dp"
    android:layout_height="75dp"
    android:src="@drawable/ic_check_mark"
    android:background="@drawable/bg_circle"
    android:backgroundTint="@color/red"
    />

你应该看看背景色,这将允许你使用相同的可拉丝,但覆盖不同的颜色

例如,你可以有一个bg_circle.xml,它是一个白色的圆圈。然后使用“淡色”更改其颜色,并将单独的图标作为src

<ImageButton
    android:layout_width="75dp"
    android:layout_height="75dp"
    android:src="@drawable/ic_check_mark"
    android:background="@drawable/bg_circle"
    android:backgroundTint="@color/red"
    />

你可以
扩展视图
并传递你想要的任何颜色参数。我一定会查出来的。谢谢你可以
扩展视图
并传递你想要的任何颜色参数。我一定会查出来的。谢谢你,非常感谢你的解释。刚刚把它标上了正确的答案:)非常感谢你的精彩解释。只是把它标对了答案:)