Android自定义按钮

博格丹

我在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文件中的每个按钮,以便可以使用它为每个按钮显示不同的图像?

尼克·卡多佐(Nick Cardoso)

如果您使用,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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章