gpt4 book ai didi

安卓自定义按钮

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:13:08 24 4
gpt4 key购买 nike

我正在 android 中创建自定义按钮,但想避免重复。

我正在尝试创建 2 个可切换按钮,它们共享相同的设计,但使用不同的图像图标而不是文本。

目前我有这个:

enter image description here

我将此 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 文件的情况下在每个按钮的中心显示不同的图像?

有什么方法可以将值传递给 Activity 的 .java 文件中的每个按钮,以便我可以使用它为每个按钮显示不同的图像?

最佳答案

如果您使用 ImageView,那么您可以将图标设置为 src 并仍然使用您的 drawable 作为背景:

 <ImageView ...
android:src="@drawable/ic_whatever"
android:background="@drawable/background" />

所有 View 都支持 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);
}

关于安卓自定义按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32034148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com