我添加了一个imageView
输入,GraphicalLayout
但它在我的真实设备上看起来与在 AVD 上不同。
我发现我需要添加contentDescription
一个布局.xml
,但是当我添加时:contentDescription="@string/desc"
有一个错误:
“找不到与给定名称匹配的资源(在 'contentDescription' 处,值为 '@string/desc')”
这个字符串“desc”是什么?它应该是什么样子?
我添加了一个imageView
输入,GraphicalLayout
但它在我的真实设备上看起来与在 AVD 上不同。
我发现我需要添加contentDescription
一个布局.xml
,但是当我添加时:contentDescription="@string/desc"
有一个错误:
“找不到与给定名称匹配的资源(在 'contentDescription' 处,值为 '@string/desc')”
这个字符串“desc”是什么?它应该是什么样子?
它适用于 Android 的辅助功能。这contentDescription
是读回给(假设是盲人或视力障碍用户)的内容,因此他们知道图片是什么,因为他们无法查看它。
至于回答你的问题,@iturki 给出了它的开始。您编写用于描述的字符串strings.xml
并给它一个name
'desc' 或任何您想要的,然后您将contentDescription
ImageView 中的值设置为@string/desc
,无论是在布局中还是以编程方式。就像我之前说的,这是为了帮助视力不佳的用户大致了解图像所描绘的内容:)
那是为了辅助功能(例如,对于屏幕阅读器)。您应该定义一个描述图像的字符串资源,并在 contentDescription 中引用它。请参阅 iturki 的答案以了解如何执行此操作。
您需要将其添加到您的string.xml
文件中:
<string name="desc">your desc goes here</string>
虽然我不知道为什么你需要添加contentDescription
到你的 imageView 来解决不一致的外观问题!我不认为这会解决它。
而不是使用内容描述和字符串描述,只需在您的图像视图上使用 tools:ignore="ContentDescription"
public void setContentDescription (CharSequence contentDescription)
定义简要描述视图内容的文本。
内容描述简要描述了视图,主要用于辅助功能支持以确定应如何向用户呈现视图。对于没有文本表示的视图,例如 ImageButton,有用的内容描述解释了视图的作用。例如,用于拨打电话的带有电话图标的图像按钮可以使用“呼叫”作为其内容描述。用于保存文件的软盘映像可以使用“保存”。