我在android中创建自定义按钮,但要避免重复。
我正在尝试创建2个可切换按钮,它们具有相同的设计,但具有不同的图像图标而不是文本。
目前我有这个:
而且我正在使用此xml作为可绘制资源:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<item>
<shape>
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
<corners android:radius="20dp"/>
</shape>
</item>
<item>
<shape>
<padding
android:bottom="5dp"
android:left="-5dp"
android:right="5dp"
android:top="-5dp" />
<solid android:color="#edebeb"></solid>
<corners android:radius="20dp"/>
</shape>
</item>
<item>
<shape>
<size android:height="150dp" android:width="150dp"></size>
<padding
android:bottom="5dp"
android:left="-5dp"
android:right="5dp"
android:top="-5dp" />
<solid android:color="#fff"></solid>
<corners android:radius="20dp"/>
</shape>
</item>
</layer-list>
如何在不复制xml文件的情况下在每个按钮的中心显示不同的图像?
有什么方法可以将值传递给活动的.java文件中的每个按钮,以便可以使用它为每个按钮显示不同的图像?
如果您使用,ImageView
则可以将图标设置为,src
并且仍将可绘制对象用作背景:
<ImageView ...
android:src="@drawable/ic_whatever"
android:background="@drawable/background" />
所有视图都支持onClick,因此它仍然可以充当按钮。另外,您可以嵌套可绘制对象,以便对每个不同的按钮样式都具有以下内容:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<item android:drawable="@drawable/ic_whatever" />
<item android:drawable="@drawable/background" />
</layer-list>
我上面建议的Java版本(来自Activity
):
public void onCreate(...) {
...
((ImageView) findViewById(R.id.my_button)).setImageResource(R.drawable.ic_whatver);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句