带有Camera2的Android RTL

时间:2019-06-03 07:36:00

标签: android opencv right-to-left android-camera2

我想知道为什么将Camera2 API与RTL语言一起使用时,摄像机预览会有所不同。具体来说,我有两个问题:

  1. 使用RTL时,相机上是否有任何特定设置?
  2. 我正在通过OpenCV使用边缘检测。 OpenCV是否具有任何RTL功能?

1 个答案:

答案 0 :(得分:1)

您可以在应用清单文件( AndroidManifest.xml )中切换属性supportsRtl以支持从右到左的语言:

    <application>
        ...
        android:supportsRtl="true"
        ...
    </application>
  

如果设置为true且targetSdkVersion设置为17或更高,系统将激活并使用各种RTL API,以便您的应用可以显示RTL布局。如果设置为false或targetSdkVersion设置为16或更低,则RTL API将被忽略或不起作用,并且与用户的语言环境选择相关联的布局方向,您的应用程序将具有相同的行为(您的布局将始终保留-向右)。

因此,禁用此选项将使相机预览看起来与从右到左的效果相同,但是您的应用将无法使用RTL API提供的RTL布局。

在从右到左语言的上下文中谈论计算机视觉库和边缘检测时,您是什么意思?边缘检测不取决于文本的读写方向。如果只想按从右到左的顺序获取边缘,可以发现this answer有用。

如果您想了解有关Android上的RTL支持以及使用RTL布局需要更改的内容的更多信息,

This article可能会有所帮助。

如果您希望您的应用程序支持RTL,但将相机预览小部件保持在普通的从左到右的视图中,则可以使用android:layoutDirection属性强制其保持从左到右的状态。将此小工具设置为

android:layoutDirection="ltr"

它将覆盖此特定小部件的应用程序supportsRtl属性。