如果我将我的 ImageView 设置为既可点击又可聚焦,它可以工作,但我无法判断哪个图像被聚焦。让它在 View 周围绘制橙色边框以便用户知道它当前处于焦点中的最佳方法是什么?
我尝试将它放在 LinearLayout 中并将其设置为可聚焦和可点击,但没有任何运气。即使我在上面加了边距,也没有任何迹象表明它已被选中。
最佳答案
您可以使用带有选择器的可绘制对象作为背景。
比如我在res/drawable中有gallery_image_bg.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:constantSize="true">
<item android:state_selected="true">
<shape android:shape="rectangle">
<solid android:color="#E6E4E0"/>
<stroke android:width="3dp" android:color="#F9C11E"/>
<padding android:left="3dp"
android:top="3dp"
android:right="3dp"
android:bottom="3dp" />
</shape>
</item>
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="#E6E4E0"/>
<stroke android:width="3dp" android:color="#F9C11E"/>
<padding android:left="3dp"
android:top="3dp"
android:right="3dp"
android:bottom="3dp" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="#E6E4E0"/>
<stroke android:width="3dp" android:color="#FFF"/>
<padding android:left="3dp"
android:top="3dp"
android:right="3dp"
android:bottom="3dp" />
</shape>
</item>
</selector>
这会在图像周围创建三个不同颜色的 3dp 线。它们是可见的,因为填充会强制图像在稍小的区域中呈现。
像这样在代码中使用:
image.setBackgroundResource(R.drawable.gallery_image_bg)
关于Android 布局 - ImageView 聚焦,但不在屏幕上显示任何内容(无突出显示),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3878817/