将太小的 ImageView 增加到 48dp 触摸目标大小?
Increasing too small ImageView to 48dp touch target size?
我有一个带有 24x24 dp 图标的 ImageView
,所以完整的 ImageView
和触摸区域只有 24x24dp,而 recommended minimum touch target area 是 48x48dp。
增加ImageView
触摸区域大小的常用方法是什么?我可以在每一侧手动添加 12 dp 的填充(24 + 12 + 12 = 48 dp),但有没有更好的方法?特别是如果 ImageView
大小发生变化,我必须手动调整填充,这很容易出错。
您可以将 ImageView
的大小设置为可触摸区域的大小。
然后你设置ImageView
的scale type属性来达到你想要的效果。在您的情况下(图标可能小于 48dp
x 48dp
)这可能是 android:scaleType="center"
或 android:scaleType="centerInside"
.
有关所有选项的说明,请参阅 documentation
同时使用 LinearLayout
和 ImageView
也可能是一个解决方案。
将 imageView 保留在 LinearLayout 中,然后将 linearLayout 的大小设置为 48dp
x 48dp
,并将 imageView 的大小设置为 24dp
x `24dp,以防万一任何 onclick 事件,那么您只需将 ImageView 的 onclick 事件替换为 linearLayout。
我有一个带有 24x24 dp 图标的 ImageView
,所以完整的 ImageView
和触摸区域只有 24x24dp,而 recommended minimum touch target area 是 48x48dp。
增加ImageView
触摸区域大小的常用方法是什么?我可以在每一侧手动添加 12 dp 的填充(24 + 12 + 12 = 48 dp),但有没有更好的方法?特别是如果 ImageView
大小发生变化,我必须手动调整填充,这很容易出错。
您可以将 ImageView
的大小设置为可触摸区域的大小。
然后你设置ImageView
的scale type属性来达到你想要的效果。在您的情况下(图标可能小于 48dp
x 48dp
)这可能是 android:scaleType="center"
或 android:scaleType="centerInside"
.
有关所有选项的说明,请参阅 documentation
同时使用 LinearLayout
和 ImageView
也可能是一个解决方案。
将 imageView 保留在 LinearLayout 中,然后将 linearLayout 的大小设置为 48dp
x 48dp
,并将 imageView 的大小设置为 24dp
x `24dp,以防万一任何 onclick 事件,那么您只需将 ImageView 的 onclick 事件替换为 linearLayout。