gpt4 book ai didi

android - 禁用 ImageButton

转载 作者:IT老高 更新时间:2023-10-28 22:19:36 32 4
gpt4 key购买 nike

这看起来很简单,但我无法禁用 ImageButton。它继续接收点击事件,并且它的外观不会像标准按钮那样发生变化。

有一些similar questions SO,但他们没有帮助我。

即使是这样一个非常简单的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

<ImageButton
android:id="@+id/btn_call"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:clickable="false"
android:enabled="false"
android:src="@android:drawable/sym_action_call" />

</LinearLayout>

该按钮仍处于启用状态,我可以单击它。

奇怪的是,如果我将 ImageButton 更改为一个简单的 Button,那么它会按预期工作。该按钮变为禁用且不可点击。我不明白。有人有想法吗?

最佳答案

这是我用来禁用 ImageButton 并使其看起来灰显的代码:

/**
* Sets the specified image buttonto the given state, while modifying or
* "graying-out" the icon as well
*
* @param enabled The state of the menu item
* @param item The menu item to modify
* @param iconResId The icon ID
*/
public static void setImageButtonEnabled(Context ctxt, boolean enabled, ImageButton item,
int iconResId) {
item.setEnabled(enabled);
Drawable originalIcon = ctxt.getResources().getDrawable(iconResId);
Drawable icon = enabled ? originalIcon : convertDrawableToGrayScale(originalIcon);
item.setImageDrawable(icon);
}

/**
* Mutates and applies a filter that converts the given drawable to a Gray
* image. This method may be used to simulate the color of disable icons in
* Honeycomb's ActionBar.
*
* @return a mutated version of the given drawable with a color filter
* applied.
*/
public static Drawable convertDrawableToGrayScale(Drawable drawable) {
if (drawable == null) {
return null;
}
Drawable res = drawable.mutate();
res.setColorFilter(Color.GRAY, Mode.SRC_IN);
return res;
}

只需调用 setImageButtonEnabled();唯一的缺点是您需要在此处输入图像的资源 ID,因为无法将转换后的图标恢复为原始图标。

关于android - 禁用 ImageButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8196206/

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