(现在我在 StackOverflow 上遇到了相关问题,但不幸的是没有一个解决方案对我有用,这就是为什么我不得不单独问这个问题)
我是 Android 新手。问题:我需要一个充当按钮的图像。现在我明白,这可以通过在标准按钮上使用图像或使用称为“ImageButton”的东西来实现(我想强烈推荐,尽管我不知道为什么)。
要求:我需要详细的指导来解决这个问题。具体来说,我认为“将图像放在标准按钮上”更容易,直到我遇到两个主要问题:我无法将图像设置在中心(感谢drawable-top,bottom,left6,right)并且一旦我更改背景颜色以匹配活动屏幕的背景颜色,按钮效果消失。简而言之,我需要一种相当简单的方法,让图像充当按钮或带有图像的按钮,该按钮具有所有三种效果:聚焦、按下和默认。我使用了 ImageButton,但后来我不知道如何制作自定义形状或 9patch 图像来给它所有想要的效果,我对 android 提供的默认按钮非常满意。我只需要像背景悬停在图像上或类似的东西来指示用户图像正在被按下并且事件已经生成!
有人可以帮我解决这个问题吗?我需要用户界面看起来不错,因此需要在我的图像/按钮上有相应的效果。提前致谢 :)
This is my icon-image:
![enter image description here](https://i.stack.imgur.com/nKf9b.png)
我希望有某种悬停效果,表明图像已像任何普通按钮一样被按下。
Use ImageButton
and StateList Drawable https://developer.android.com/guide/topics/resources/drawable-resource.html#StateList. You need selector for different button's states. You can assign different drawable for different state to imitate the onFocus or onPressed effect on normal button.
This is selector.xml
in drawable
下的文件夹res
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@color/cyan"/> <!-- pressed state -->
<item android:state_focused="true"
android:drawable="@color/cyan"/> <!-- focused state -->
<item android:drawable="@android:color/transparent"/> <!-- default state -->
</selector>
这是color.xml
in values
下的文件夹res
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="cyan">#33B5E5</color>
</resources>
Set the ImageButton
's src to your image and set the background to selector.xml
.
这是最终结果:
这里有一个很好的教程:Android ImageButton 选择器示例 http://www.mkyong.com/android/android-imagebutton-selector-example/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)