特定のアクティビティで使用されているAndroidのカスタム画面カテゴリを検出したいです。layout-sw640dpをプログラムで検出したいのですが、これをどのように実現できますか。小さい、通常、大きい、xlargeのレイアウトでも同じことができますが、私はこれについてはよくわかりません。親切にこれを手伝ってください。ありがとう。
質問する
147 次
2 に答える
2
なぜそれをする必要があるのか わかりません。ただし、簡単なウォークアラウンドは、次のようにタグを使用することです。
mdpi:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/content_bg"
android:orientation="vertical"
android:id="@+id/name"
android:tag="mdpi-xxx-yyy" >
hdpiで:
android:id="@+id/name"
android:tag="hdpi-xxx-yyy" >
次に、コードから R.id.name のタグを読み取ります。
于 2013-03-15T06:06:57.230 に答える
1
sw640dp
利用可能な最小サイズが 640 dp 以上であることを意味します。これは、デバイスの実際の解像度ではなく、アクティビティに使用できるレイアウト スペースに基づいています。したがって、アクティビティのルート レイアウトの寸法に基づいてこれを計算できます。
int density = getResources().getDisplayMetrics().density;
int widthDp = rootView.getWidth() / density;
int heightDp = rootView.getHeight() / density;
if(widthDp >= 640 || heightDp >= 640) {
// qualifies for sw640dp
}
else {
// does not qualify for sw640dp
}
Galaxy S3 の場合、解像度は 1280x720 で、これは 640x360 を dp 単位に変換したものです。解像度ではなくレイアウトsw
の利用可能なサイズに関係するため、ステータスバーなどのシステム装飾がレイアウトの利用可能な高さを減らすため、資格がないだろうと推測しています.sw640dp
于 2013-03-15T07:01:56.343 に答える