gpt4 book ai didi

Android ImageButton 背景色

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:45:15 29 4
gpt4 key购买 nike

我有一个 ImageButton,其背景图像具有一定的透明度。默认情况下,按钮在透明像素所在的位置获得灰色背景 - 由于 Holo.Light 主题。我尝试通过 setBackgroundColor(Color.TRANSPARENT) 方法将按钮的背景颜色设置为透明。这工作得很好并且可以满足我的需要,除了现在我的按钮在聚焦/按下时不再具有浅蓝色并且看起来相当平坦(它周围没有边框,所以它看起来像一个图像)。

我用谷歌搜索并看到您可以按照说明分配选择器 here但这意味着我必须为每个按钮状态指定一个图像,我不想那样做。我想从主题中继承焦点/按下颜色,但将普通按钮背景(未按下/聚焦时)覆盖为透明而不是灰色。我怎样才能做到这一点?请提供一个工作示例,因为我尝试了许多不同的组合但没有成功。

编辑谢谢大家的帮助。我想出了如何完成这项工作,而不必为每个按钮重新创建具有聚焦和按下状态的相同图像!

这是我的解决方案:

我的按钮定义为:

<ImageButton
android:id="@+id/ImageButton05"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/button" />

我的背景 XML 文件(标题为 button.xml)定义如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="true">
<layer-list>
<item android:drawable="@drawable/btn_default_pressed_holo_light"></item>
<item android:drawable="@drawable/network_wifi"></item>
</layer-list>
</item>
<item android:state_focused="true">
<layer-list>
<item android:drawable="@drawable/btn_default_focused_holo_light"></item>
<item android:drawable="@drawable/network_wifi"></item>
</layer-list>
</item>
<item android:state_hovered="true">
<layer-list>
<item android:drawable="@drawable/btn_default_focused_holo_light"></item>
<item android:drawable="@drawable/network_wifi"></item>
</layer-list>
</item>
<item>
<layer-list>
<item android:drawable="@drawable/btn_default_normal_holo_light"></item>
<item android:drawable="@drawable/network_wifi"></item>
</layer-list>
</item>
</selector>

最佳答案

您可以将一些内容放入 xml 文件中,例如 custom_button.xml然后设置 background="@drawable/custom_button"在按钮 View 中。

请引用此链接,因为有一个 xml 示例:Standard Android Button with a different color

我在我的代码中使用了它,它按照我想要的方式工作。

引用: Standard Android Button with a different color


已编辑:

如果你更愿意使用也许你应该尝试设置一个边界。例如(引用:Android - border for button):

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="#FFFFFF"
android:endColor="#00FF00"
android:angle="270" />
<corners android:radius="3dp" />
<stroke android:width="5px" android:color="#000000" />
</shape>

或者,您可以尝试为按钮设置样式/主题。 (但它会在一个单独的文件中)样式/主题包含按钮各种状态的颜色属性,例如聚焦/启用/禁用/等。

用于设置背景颜色/图像并具有点击高亮效果,这是一个示例(引用:How to programmatically setting style attribute in a view)

<?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/btn_pressed" />
<item
android:state_pressed="false"
android:drawable="@drawable/btn_normal" />
</selector>

然后您可以通过设置属性 android:background="@drawable/my_button"将此选择器应用于 Button。

关于Android ImageButton 背景色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11623011/

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