gpt4 book ai didi

android - 以编程方式更改 ImageButton 的背景

转载 作者:行者123 更新时间:2023-11-29 21:09:02 24 4
gpt4 key购买 nike

我在 Android 应用程序中使用自定义操作栏,该应用程序右侧有自定义 ImageButton,它们的 onClick 行为以编程方式添加(请参见下面的代码 fragment )。

按钮的 XML 源代码

<ImageButton
android:id="@+id/btn_refresh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/btn_right_menu"
android:background="@null"
android:contentDescription="@string/image_description"
android:onClick="refresh"
android:padding="10dp"
android:src="@drawable/button_refresh" />

OnClickListener 来源

mRefreshButton = (ImageButton) findViewById(R.id.btn_refresh);
mRefreshButton.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
doSomething();
}
});

我想以编程方式更改我的 ImageButton 的背景颜色(无需使用额外的图形),以便当用户单击按钮时背景会发生变化(在单击背景应该恢复正常,即透明)。我该怎么做?

最佳答案

为您的 ImageButton 使用选择器并从 xml 设置背景。

如果您想使用可绘制图像:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true"
android:drawable="@drawable/pressed_bg" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/focused_bh" /> <!-- focused -->
<item android:drawable="@drawable/default_bg" /> <!-- default -->
</selector>

如果您只想使用颜色:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@android:color/white" />
<item android:state_pressed="true" android:drawable="@android:color/white" />
<item android:drawable="@android:color/transparent" />
</selector>

关于android - 以编程方式更改 ImageButton 的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23535453/

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