サポートされている画面サイズが多く、画面ごとにレイアウトが異なるAndroidプログラムを開発していますが、一部のレイアウトには余分なボタンとビューがあるため、タブレットを使用する場合など、現在使用しているデバイスに応じてコードを変更したい別の main.java コードを使用したいのですが、どうすればよいですか?
5 に答える
1
アクティビティでさまざまな画面サイズを確認し、それに適切な xml を使用する必要があると思います。次のコードが機能する可能性があります
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
final int height=dm.heightPixels;
final int width=dm.widthPixels;
if(width == 720 || width==1280 && height == 1280 || height==720) //galaxy s3
{
//code to select xml file
}
于 2013-01-16T11:56:26.350 に答える
1
そのための res フォルダーに値を追加できます。
- values-large
* booleans.xml
- values
* booleans.xml
各 booleans.xml には異なる値が必要です。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="isTablet">true</bool>
</resources>
ブール値の「isTablet」の代わりに、必要に応じてサイズで分けることができます。次に、この値を取得してコードで使用できます。
public static boolean isTablet(Context context) {
return context.getResources().getBoolean(R.bool.isTablet);
}
于 2013-01-16T11:56:33.760 に答える
0
あなたの条件を満たすためにAndroidでフラグメンテーションを使用します...または、コードに画面サイズを検出する行を含めることができ、特定の画面サイズが見つかった場合は、追加のボタン(またはその他のもの)を接続できます
于 2013-01-16T11:54:46.087 に答える
0
画面の寸法を検出するには、次を使用しますDisplayMetrics
。
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
コード内metrics.widthPixels
で and/or metrics.heightPixels
(またはその他の便利なフィールド) を使用して、さまざまな画面サイズに反応させることができます。
if(metrics.widthPixels >= 500) {
// Support code for additional buttons at a width of 500 and larger
}
于 2013-01-16T11:57:32.120 に答える
0
画面サイズを取得するには:
public static double getScreenSize(WindowManager windowManager) {
DisplayMetrics metrics = new DisplayMetrics();
windowManager.getDefaultDisplay().getMetrics( metrics );
float widthInInches = metrics.widthPixels / metrics.densityDpi;
float heightInInches = metrics.heightPixels / metrics.densityDpi;
return Math.sqrt(Math.pow(widthInInches,2) + Math.pow(heightInInches,2));
}
タブレットかどうかを判断するには:
public final static double TABLET_SIZE = 5.0; //inch
public static boolean IsTablet(WindowManager windowManager) {
double inch = getScreenSize(windowManager);
return inch >= TABLET_SIZE;
}
縦向きかどうかを判断するには:
public static boolean isPortraitOrientation(Context context) {
context.getResources().getConfiguration();
return context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
}
于 2013-01-16T12:02:31.843 に答える