Android 如何使用;“图层类型”;资源中的值设置是否不同?

Android 如何使用;“图层类型”;资源中的值设置是否不同?,android,gpu,hardware-acceleration,Android,Gpu,Hardware Acceleration,假设有一个视图在使用GPU加速时执行有问题,但仅限于特定的Android版本 我希望使用android:layerType=“software”作为这个有问题的版本(包括)之前的版本,使用android:layerType=“hardware”作为这个版本之后的版本,所有这些都在参考资料中 我知道如何使用字符串和简单资源(使用简单限定符和多个文件),但是如何使用这种资源呢?我应该去哪里看 我应该使用“整数”作为资源吗?还是有更好、更正式的方式 注意:我知道如何通过编程来完成。我想知道如何在参考资

假设有一个视图在使用GPU加速时执行有问题,但仅限于特定的Android版本

我希望使用android:layerType=“software”作为这个有问题的版本(包括)之前的版本,使用android:layerType=“hardware”作为这个版本之后的版本,所有这些都在参考资料中

我知道如何使用字符串和简单资源(使用简单限定符和多个文件),但是如何使用这种资源呢?我应该去哪里看

我应该使用“整数”作为资源吗?还是有更好、更正式的方式


注意:我知道如何通过编程来完成。我想知道如何在参考资料中实现这一点。

由于无法从xml访问
视图
类的静态常量,因此应该使用特定于API的布局。例如:

res/layout/layout.xml

<View
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layerType="software"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

res/layout-v11/layout.xml:

<View
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layerType="hardware"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

您还可以在更大的布局中
,这样您就不必复制所有内容


但是,一个更简洁的解决方案(特别是当您需要多次设置
layerType
时)是以编程方式进行设置。

清单与资源不同,依赖于应用程序,因此您无法生成特定于API的清单。坚持编程的方式。@user3249477我没有提到清单。我谈到了视图属性:哦,我的糟糕。那么,限定符和多个文件有什么问题?@user3249477我只是不确定使用常量整数(而不是它们的名称)是否被认为是最好的方法。正确的方法是什么?我为值本身编写了多个参考资料。不是布局。使用多个布局可能会导致编程错误。视图的示例只是一个示例。想想如果我有多个视图会发生什么…@androiddeveloper我理解你的意思,有点。然而,由于xml不能访问类常量,您只能通过编程方式设置层类型,因为类似整数资源IMO的东西也会被认为是糟糕的编程实践。我要求最好的做法。我还认为,有时在代码中设置它与在XML中设置它是有区别的。我已尝试帮助完成此帖子:。我发现了Android 4.0-4.2上出现的问题,您可以通过在XMl中使用layerType=“software”并在代码中重置来解决它,但我认为最好是在XMl中设置它,这样它只会出现在这个有问题的Android版本范围内。