2014-10-12 23 views
1

假設有一個視圖在使用GPU加速時會出現問題,但只能達到特定的Android版本。如何在資源內部使用「layerType」值設置不同?

我希望在這個有問題的版本(包括)之前使用android:layerType =「software」,並且在此版本之後使用android:layerType =「hardware」,所有內部資源。

我知道如何用字符串和簡單的資源(使用簡單的限定符和多個文件)來完成它,但我該如何使用這種資源來完成它?我應該在哪裏看?

我應該只使用「整數」作爲資源?還是有更好,更正式的方式?

注:我知道如何以編程方式。我希望知道如何在資源內做到這一點。

+0

清單依賴於應用程序,與資源不同,因此您無法生成API特定的清單。只要堅持程序化的方式。 – Simas 2014-10-12 14:10:05

+0

@ user3249477我沒有談論清單。我談到了一個視圖屬性:http://developer.android.com/reference/android/view/View.html#attr_android:layerType – 2014-10-12 14:18:20

+0

哦,我的壞。限定符和多個文件有什麼問題呢? – Simas 2014-10-12 14:24:10

回答

0

由於您無法從xml訪問View類的靜態常量,因此應使用API​​特定的佈局。例如:

RES /佈局/ 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 /佈局-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"/> 

您也<include layout="@layout/layout"/>在更大的佈局可以使你不」不得不復制一切。

然而,更清潔的解決方案(特別是如果您需要多次設置layerType)將以編程方式進行設置。

+0

我爲這個值本身寫了多個資源。不是佈局。使用多個佈局會導致編程不良。視圖的例子只是一個例子。想想看,如果我有多個視圖會發生什麼...... – 2014-10-12 14:56:18

+0

@androiddeveloper我明白你的意思,排序。但是由於xml無法訪問類常量,因此您需要以編程方式設置圖層類型,因爲類似整數資源IMO的內容會被視爲不良編程練習*。 – Simas 2014-10-12 15:15:20

+0

這就是爲什麼我問這個問題。我要求最佳做法。我也認爲在代碼中設置它比使用XML有區別。我試過幫助這個帖子:http://stackoverflow.com/q/26206324。我發現Android 4.0-4.2發生了這個問題,你可以通過在XMl中使用layerType =「software」來解決它,並在代碼中重置它,但我認爲最好將它設置爲XML,以便它只會出現在Android版本的這個有問題的範圍內。 – 2014-10-12 15:27:19

相關問題