Android 按上视图按上视图:是否更改按上的背景色?如何显示正在按视图?
目前,我有一个自定义视图,以9面片图像作为边框 该自定义视图在线性布局中放置了三次,因此看起来如下所示:Android 按上视图按上视图:是否更改按上的背景色?如何显示正在按视图?,android,Android,目前,我有一个自定义视图,以9面片图像作为边框 该自定义视图在线性布局中放置了三次,因此看起来如下所示: +------------------------+ | CustomView | +------------------------+ | CustomView | +------------------------+ | CustomView | +------------------------+ <?xm
+------------------------+
| CustomView |
+------------------------+
| CustomView |
+------------------------+
| CustomView |
+------------------------+
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_focused="true"
android:state_pressed="true"
android:drawable="@drawable/background_pressed" />
<item
android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/background_focused" />
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/background_pressed" />
<item
android:drawable="@drawable/background_normal" />
我在视图中附加了一个单击事件侦听器,因此它是可单击的。但当我点击它时,我看不出我在点击它——颜色没有变化
所以,我想我应该附加一个“onPress”侦听器,然后更改视图的背景,但我找不到这样的侦听器
那么,我如何在视图上创建行为,以便看到它被按下?这通常是在Android中完成的,背景为绿色,表示现在正在按下它。您可以为视图设置OnClickListener。单击视图时将调用的。但是,对于像在单击视图时更改背景这样简单的事情,您应该使用有状态的可绘制视图。它们是这样工作的,你可以制作3张9面片图像
+------------------------+
| CustomView |
+------------------------+
| CustomView |
+------------------------+
| CustomView |
+------------------------+
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_focused="true"
android:state_pressed="true"
android:drawable="@drawable/background_pressed" />
<item
android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/background_focused" />
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/background_pressed" />
<item
android:drawable="@drawable/background_normal" />
然后,当您设置视图的背景时,将其设置为xml文件。如果您在访问颜色时可能遇到问题,您可能希望将colors.xml添加到values文件夹中,其中包含一些您喜欢的颜色,如:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="background_pressed">#FFFF00</color> <!--yellow-->
<color name="background_normal">#808000</color> <!--olive-->
<color name="background_focused">#0000FF</color> <!--blue-->
</resources>
如果希望所有X11/w3c颜色代码都使用此处提供的post或just代码:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="White">#FFFFFF</color>
<color name="Ivory">#FFFFF0</color>
<color name="LightYellow">#FFFFE0</color>
<color name="Yellow">#FFFF00</color>
<color name="Snow">#FFFAFA</color>
<color name="FloralWhite">#FFFAF0</color>
<color name="LemonChiffon">#FFFACD</color>
<color name="Cornsilk">#FFF8DC</color>
<color name="Seashell">#FFF5EE</color>
<color name="LavenderBlush">#FFF0F5</color>
<color name="PapayaWhip">#FFEFD5</color>
<color name="BlanchedAlmond">#FFEBCD</color>
<color name="MistyRose">#FFE4E1</color>
<color name="Bisque">#FFE4C4</color>
<color name="Moccasin">#FFE4B5</color>
<color name="NavajoWhite">#FFDEAD</color>
<color name="PeachPuff">#FFDAB9</color>
<color name="Gold">#FFD700</color>
<color name="Pink">#FFC0CB</color>
<color name="LightPink">#FFB6C1</color>
<color name="Orange">#FFA500</color>
<color name="LightSalmon">#FFA07A</color>
<color name="DarkOrange">#FF8C00</color>
<color name="Coral">#FF7F50</color>
<color name="HotPink">#FF69B4</color>
<color name="Tomato">#FF6347</color>
<color name="OrangeRed">#FF4500</color>
<color name="DeepPink">#FF1493</color>
<color name="Fuchsia">#FF00FF</color>
<color name="Magenta">#FF00FF</color>
<color name="Red">#FF0000</color>
<color name="OldLace">#FDF5E6</color>
<color name="LightGoldenrodYellow">#FAFAD2</color>
<color name="Linen">#FAF0E6</color>
<color name="AntiqueWhite">#FAEBD7</color>
<color name="Salmon">#FA8072</color>
<color name="GhostWhite">#F8F8FF</color>
<color name="MintCream">#F5FFFA</color>
<color name="WhiteSmoke">#F5F5F5</color>
<color name="Beige">#F5F5DC</color>
<color name="Wheat">#F5DEB3</color>
<color name="SandyBrown">#F4A460</color>
<color name="Azure">#F0FFFF</color>
<color name="Honeydew">#F0FFF0</color>
<color name="AliceBlue">#F0F8FF</color>
<color name="Khaki">#F0E68C</color>
<color name="LightCoral">#F08080</color>
<color name="PaleGoldenrod">#EEE8AA</color>
<color name="Violet">#EE82EE</color>
<color name="DarkSalmon">#E9967A</color>
<color name="Lavender">#E6E6FA</color>
<color name="LightCyan">#E0FFFF</color>
<color name="BurlyWood">#DEB887</color>
<color name="Plum">#DDA0DD</color>
<color name="Gainsboro">#DCDCDC</color>
<color name="Crimson">#DC143C</color>
<color name="PaleVioletRed">#DB7093</color>
<color name="Goldenrod">#DAA520</color>
<color name="Orchid">#DA70D6</color>
<color name="Thistle">#D8BFD8</color>
<color name="LightGrey">#D3D3D3</color>
<color name="Tan">#D2B48C</color>
<color name="Chocolate">#D2691E</color>
<color name="Peru">#CD853F</color>
<color name="IndianRed">#CD5C5C</color>
<color name="MediumVioletRed">#C71585</color>
<color name="Silver">#C0C0C0</color>
<color name="DarkKhaki">#BDB76B</color>
<color name="RosyBrown">#BC8F8F</color>
<color name="MediumOrchid">#BA55D3</color>
<color name="DarkGoldenrod">#B8860B</color>
<color name="FireBrick">#B22222</color>
<color name="PowderBlue">#B0E0E6</color>
<color name="LightSteelBlue">#B0C4DE</color>
<color name="PaleTurquoise">#AFEEEE</color>
<color name="GreenYellow">#ADFF2F</color>
<color name="LightBlue">#ADD8E6</color>
<color name="DarkGray">#A9A9A9</color>
<color name="Brown">#A52A2A</color>
<color name="Sienna">#A0522D</color>
<color name="YellowGreen">#9ACD32</color>
<color name="DarkOrchid">#9932CC</color>
<color name="PaleGreen">#98FB98</color>
<color name="DarkViolet">#9400D3</color>
<color name="MediumPurple">#9370DB</color>
<color name="LightGreen">#90EE90</color>
<color name="DarkSeaGreen">#8FBC8F</color>
<color name="SaddleBrown">#8B4513</color>
<color name="DarkMagenta">#8B008B</color>
<color name="DarkRed">#8B0000</color>
<color name="BlueViolet">#8A2BE2</color>
<color name="LightSkyBlue">#87CEFA</color>
<color name="SkyBlue">#87CEEB</color>
<color name="Gray">#808080</color>
<color name="Olive">#808000</color>
<color name="Purple">#800080</color>
<color name="Maroon">#800000</color>
<color name="Aquamarine">#7FFFD4</color>
<color name="Chartreuse">#7FFF00</color>
<color name="LawnGreen">#7CFC00</color>
<color name="MediumSlateBlue">#7B68EE</color>
<color name="LightSlateGray">#778899</color>
<color name="SlateGray">#708090</color>
<color name="OliveDrab">#6B8E23</color>
<color name="SlateBlue">#6A5ACD</color>
<color name="DimGray">#696969</color>
<color name="MediumAquamarine">#66CDAA</color>
<color name="CornflowerBlue">#6495ED</color>
<color name="CadetBlue">#5F9EA0</color>
<color name="DarkOliveGreen">#556B2F</color>
<color name="Indigo">#4B0082</color>
<color name="MediumTurquoise">#48D1CC</color>
<color name="DarkSlateBlue">#483D8B</color>
<color name="SteelBlue">#4682B4</color>
<color name="RoyalBlue">#4169E1</color>
<color name="Turquoise">#40E0D0</color>
<color name="MediumSeaGreen">#3CB371</color>
<color name="LimeGreen">#32CD32</color>
<color name="DarkSlateGray">#2F4F4F</color>
<color name="SeaGreen">#2E8B57</color>
<color name="ForestGreen">#228B22</color>
<color name="LightSeaGreen">#20B2AA</color>
<color name="DodgerBlue">#1E90FF</color>
<color name="MidnightBlue">#191970</color>
<color name="Aqua">#00FFFF</color>
<color name="Cyan">#00FFFF</color>
<color name="SpringGreen">#00FF7F</color>
<color name="Lime">#00FF00</color>
<color name="MediumSpringGreen">#00FA9A</color>
<color name="DarkTurquoise">#00CED1</color>
<color name="DeepSkyBlue">#00BFFF</color>
<color name="DarkCyan">#008B8B</color>
<color name="Teal">#008080</color>
<color name="Green">#008000</color>
<color name="DarkGreen">#006400</color>
<color name="Blue">#0000FF</color>
<color name="MediumBlue">#0000CD</color>
<color name="DarkBlue">#00008B</color>
<color name="Navy">#000080</color>
<color name="Black">#000000</color>
</resources>
#FFFFFF
#FFFFF0
#FFFF0
#FFFF00
#FFFAFA
#FFFAF0
#FFFACD
#FFF8DC
#FFF5EE
#FFF0F5
#FFEFD5
#FFEBCD
#FFE4E1
#FFE4C4
#FFE4B5
#死的
#FFDAB9
#FFD700
#FFC0CB
#FFB6C1
#FFA500
#FFA07A
#FF8C00
#FF7F50
#FF69B4
#FF6347
#FF4500
#FF1493
#FF00FF
#FF00FF
#FF0000
#FDF5E6
#FAFAD2
#FAF0E6
#FAEBD7
#FA8072
#F8F8FF
#F5FFFA
#F5F5F5
#F5F5DC
#F5DEB3
#F4A460
#F0FFFF
#F0FFF0
#F0F8FF
#F0E68C
#F08080
#EEE8AA
#EE82EE
#E9967A
#E6E6FA
#E0FFFF
#DEB887
#DDA0DD
#DCDC
#DC143C
#DB7093
#DAA520
#DA70D6
#D8BFD8
#D3
#D2B48C
#D2691E
#CD853F
#cd5c
#C71585
#C0C0C0
#BDB76B
#BC8F8F
#BA55D3
#B8860B
#B22222
#B0E0E6
#B0C4DE
#阿菲
#ADFF2F
#地址8E6
#A9A9A9
#A52A2A
#A0522D
#9ACD32
#9932CC
#98FB98
#9400D3
#9370DB
#90EE90
#8FBC8F
#8B4513
#8B008B
#8B0000
#8A2BE2
#87CEFA
#87CEEB
#808080
#808000
#800080
#800000
#7FFFD4
#7FFF00
#7CFC00
#7B68EE
#778899
#708090
#6B8E23
#6A5ACD
#696969
#66CDAA
#6495ED
#5F9EA0
#556B2F
#4B0082
#48D1CC
#483D8B
#4682B4
#4169E1
#40E0D0
#3CB371
#32CD32
#2F4F4F
#2E8B57
#228B22
#20B2AA
#1E90FF
#191970
#00FFFF
#00FFFF
#00FF7F
#00FF00
#00FA9A
#00CED1
#00BFFF
#008B8B
#008080
#008000
#006400
#0000FF
#0000CD
#00008B
#000080
#000000
Thx for that=)因此,我有点接近解决方案。我没有试图找到“onPress”之类的东西,而是创建了3个不同的图像,将它们放在选择器XML文件中,然后附加选择器XML文件作为背景?我要试试那个=)谢谢!嗯,在[android:drawable=“@drawable/background_pressed”]上,我找不到我的drawable。如果我尝试用我的图像替换背景,它不会显示。我错过什么了吗?嗯,好像没用。。。这很正常-没有改变背景…我猜这与我在指定android:drawable=“…”时没有得到建议有关。您是在Eclipse中添加了XML还是仅仅添加到文件系统中?如果将其添加到文件系统中,则需要刷新eclipse文件夹。至于找不到drawable,您需要确保在xml中输入的名称与图像的名称完全相同,减去扩展名。您需要确保将视图设置为可单击和可聚焦。