はい、できます。それは簡単です!従来の(APIレベル13以前の)システムでは、新しいレイアウトフォルダフィルタがサポートされていないため、これを実行します。具体的には、QVGA(小)とWQVGA(通常)と他の通常の解像度を区別する必要があります。
あなたのレイアウトとレイアウトランドフォルダにさまざまなレイアウトファイルを追加するだけです。
その後
layout
my_layout_default.xml
my_layout_qvga.xml
layout-land
my_layout_default.xml
my_layout_qvga.xml
、実行時に適切なレイアウトを選択します。
protected void onCreate(Bundle savedInstanceState)
{
// Some code that uses DisplayMetrics to determine the screen type
ScreenType st = Util.getScreenType(this);
super.onCreate(savedInstanceState);
setContentView(st == ScreenType.ST_QVGA ? R.layout.my_layout_qvga : R.layout.my_layout_default);
// ...
あなたが好きな場合は、例えば、実際にロードされた1発見するために、各レイアウトにタグを追加することができます
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/my_root_view"
android:tag="st_port_QVGA"
FrameLayout flRoot = (FrameLayout)findViewById(R.id.my_root_view);
Object objTag = flRoot.getTag();
if (objTag instanceof String)
{
String strTag = (String)objTag;
System.out.println("Tag = " + strTag);
}
ところで、あなたは、例えば通常のリソース修飾子とこの技術を組み合わせることはできません理由はありませんmy_layout_default.xmlのようなファイルを他のフォルダに追加してください。
しかし、 'R.layout.my_layout_qvga'が選択されましたか? 「レイアウト」のもの?または 'layout-land'? –