Android 布局 - ImageView 聚焦,但不在屏幕上显示任何内容(无突出显示)

标签 android focus imageview clickable focusable

如果我将我的 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/

相关文章:

javascript - 在 IE8 中给子窗口焦点

wpf - 使用 ControlTemplate 内的控件进行焦点处理

Android 根据图像大小动态更改 imageview 大小

android - 如何解析此 url 以将其正确设置为 imageview 的源?

android - 使用 drupal 作为后端或服务制作移动应用程序的步骤

java - 如何使用 Firebase 从实时数据库存储和检索图像 url?

java - 如何从 Java 进行同步\异步 native 调用

javascript - 如何使用 Javascript 将 HTML 中的 <code> 标记中的文本末尾置于焦点?

android - 使用动画 onClick 在 ListView 中放大 ImageView

android - 如何防止在android fragment 中按下后退按钮时调用onCreateView