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