Bog*_*dan 5 layout android shape
我在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>
Run Code Online (Sandbox Code Playgroud)
如何在不复制xml文件的情况下在每个按钮的中心显示不同的图像?
有没有什么办法可以将值传递给我活动的.java文件中的每个按钮,以便我可以使用它为每个按钮显示不同的图像?
如果您使用 anImageView那么您可以将图标设置为src并仍然使用您的可绘制对象作为背景:
<ImageView ...
android:src="@drawable/ic_whatever"
android:background="@drawable/background" />
Run Code Online (Sandbox Code Playgroud)
所有视图都支持 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>
Run Code Online (Sandbox Code Playgroud)
我上面建议的 java 版本(来自Activity):
public void onCreate(...) {
...
((ImageView) findViewById(R.id.my_button)).setImageResource(R.drawable.ic_whatver);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1961 次 |
| 最近记录: |