0

Android デバイスの画面サイズが小さい (320 dp x 426 dp 単位) と見なされる場合、アプリの特定のボタンを無効にする必要があります。私は現在使用しています:

if (activity.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) {
    //Is small size
} else {
    //Is not small size
}

デバイスの画面サイズを決定するために使用されますが、これは決して の状態には入らないようですConfiguration.SCREENLAYOUT_SIZE_SMALL。プリントアウトを行ったところ、値が実際にはConfiguration.SCREENLAYOUT_SIZE_NORMAL!に等しいことがわかりました。

ここでの Alex Lockwood からの回答: Android でプログラムによって ScreenSize を取得する方法は、このソリューションの参照ですが、JRP が彼の回答で指摘したように、すべてがConfiguration.SCREENLAYOUT_SIZE_NORMAL私のものと同じように見えました。

デバイスの画面サイズを確実に定義するにはどうすればよいですか? 現在、Samsung Galaxy S3 でテストしていますが、これは「小さい」デバイスである必要がありました。

前もってありがとう、レイ

4

4 に答える 4

4

寸法をピクセルで表示するには、これを試してください

    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int width = size.x;
    int height = size.y;

詳細については、このStackQuestを使用してください

于 2013-07-10T10:38:49.850 に答える
1

ここには、画面サイズ W と H を取得する 2 つの関数があります。

    public static int getScreenSizeW(Context context) {
            int screenSizeW = 320;//default

            DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
            try {
                screenSizeW = DisplayMetrics.class.getField("widthPixels").getInt(displayMetrics);
            } catch (Exception e) {
            }

            return screenSizeW;
        }

public static int getScreenSizeH(Context context) {
            int screenSizeH = 480;//default

            DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
            try {
                screenSizeH = DisplayMetrics.class.getField("heightPixels").getInt(displayMetrics);
            } catch (Exception e) {
            }

            return screenSizeH;
        }

そして、ここに表示サイズを取得する別の方法があります:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
size.x = display.getWidth();
size.y = display.getHeight();
于 2013-07-10T10:29:20.400 に答える
1

このコードを試してください..

int screenSize = getResources().getConfiguration().screenLayout &
        Configuration.SCREENLAYOUT_SIZE_MASK;

String toastMsg;
switch(screenSize) {
    case Configuration.SCREENLAYOUT_SIZE_LARGE:
        toastMsg = "Large screen";
        break;
    case Configuration.SCREENLAYOUT_SIZE_NORMAL:
        toastMsg = "Normal screen";
        break;
    case Configuration.SCREENLAYOUT_SIZE_SMALL:
        toastMsg = "Small screen";
        break;
    default:
        toastMsg = "Screen size is neither large, normal or small";
}
Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show();

こちらもご覧ください

于 2015-05-15T10:55:45.527 に答える
0

以下のコードを使用します。

public boolean isPhone(Context activityContext) {

 if(null!=activityContext)
 {
  boolean xlarge = ((activityContext.getResources().getConfiguration().screenLayout &   Configuration.SCREENLAYOUT_SIZE_MASK) == 4);
  boolean large = ((activityContext.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE);   
  return (xlarge || large)?false:true;
 }
return false;    
}
于 2013-07-10T10:22:11.670 に答える