类android.view.Display源码实例Demo

下面列出了怎么用android.view.Display的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: AndroidBarUtils   文件: AndroidBarUtils.java
/**
 * 是否有NavigationBar
 *
 * @param activity 上下文
 * @return 是否有NavigationBar
 */
private static boolean hasNavBar(Activity activity) {
    WindowManager windowManager = activity.getWindowManager();
    Display d = windowManager.getDefaultDisplay();

    DisplayMetrics realDisplayMetrics = new DisplayMetrics();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        d.getRealMetrics(realDisplayMetrics);
    }

    int realHeight = realDisplayMetrics.heightPixels;
    int realWidth = realDisplayMetrics.widthPixels;

    DisplayMetrics displayMetrics = new DisplayMetrics();
    d.getMetrics(displayMetrics);

    int displayHeight = displayMetrics.heightPixels;
    int displayWidth = displayMetrics.widthPixels;

    return (realWidth - displayWidth) > 0 || (realHeight - displayHeight) > 0;
}
 
源代码2 项目: mollyim-android   文件: Camera1Fragment.java
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  if (!(getActivity() instanceof Controller)) {
    throw new IllegalStateException("Parent activity must implement the Controller interface.");
  }

  WindowManager windowManager = ServiceUtil.getWindowManager(getActivity());
  Display       display       = windowManager.getDefaultDisplay();
  Point         displaySize   = new Point();

  display.getSize(displaySize);

  controller    = (Controller) getActivity();
  camera        = new Camera1Controller(TextSecurePreferences.getDirectCaptureCameraId(getContext()), displaySize.x, displaySize.y, this);
  orderEnforcer = new OrderEnforcer<>(Stage.SURFACE_AVAILABLE, Stage.CAMERA_PROPERTIES_AVAILABLE);
  viewModel     = ViewModelProviders.of(requireActivity(), new MediaSendViewModel.Factory(requireActivity().getApplication(), new MediaRepository())).get(MediaSendViewModel.class);
}
 
源代码3 项目: HaoReader   文件: DensityUtil.java
public static Point getDisplayPoint(Context context) {
    WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = windowManager.getDefaultDisplay();
    DisplayMetrics displayMetrics = new DisplayMetrics();
    @SuppressWarnings("rawtypes")
    Class c;
    try {
        c = Class.forName("android.view.Display");
        @SuppressWarnings("unchecked")
        Method method = c.getMethod("getRealMetrics", DisplayMetrics.class);
        method.invoke(display, displayMetrics);
        return new Point(displayMetrics.widthPixels, displayMetrics.heightPixels);
    } catch (Exception e) {
        e.printStackTrace();
    }
    DisplayMetrics dm = new DisplayMetrics();
    ((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(dm);
    return new Point(dm.widthPixels, dm.heightPixels);
}
 
private AdSize getAdSize() {
  // Determine the screen width (less decorations) to use for the ad width.
  Display display = getWindowManager().getDefaultDisplay();
  DisplayMetrics outMetrics = new DisplayMetrics();
  display.getMetrics(outMetrics);

  float density = outMetrics.density;

  float adWidthPixels = adContainerView.getWidth();

  // If the ad width isn't known, default to the full screen width.
  if (adWidthPixels == 0) {
    adWidthPixels = outMetrics.widthPixels;
  }

  int adWidth = (int) (adWidthPixels / density);
  return AdSize.getCurrentOrientationBannerAdSizeWithWidth(this, adWidth);
}
 
源代码5 项目: AndroidComponentPlugin   文件: ContextImpl.java
final void init(LoadedApk packageInfo, IBinder activityToken, ActivityThread mainThread,
        Resources container, String basePackageName, UserHandle user) {
    mPackageInfo = packageInfo;
    mBasePackageName = basePackageName != null ? basePackageName : packageInfo.mPackageName;
    mResources = mPackageInfo.getResources(mainThread);

    if (mResources != null && container != null
            && container.getCompatibilityInfo().applicationScale !=
                    mResources.getCompatibilityInfo().applicationScale) {
        if (DEBUG) {
            Log.d(TAG, "loaded context has different scaling. Using container's" +
                    " compatiblity info:" + container.getDisplayMetrics());
        }
        mResources = mainThread.getTopLevelResources(
                mPackageInfo.getResDir(), Display.DEFAULT_DISPLAY,
                null, container.getCompatibilityInfo());
    }
    mMainThread = mainThread;
    mActivityToken = activityToken;
    mContentResolver = new ApplicationContentResolver(this, mainThread, user);
    mUser = user;
}
 
源代码6 项目: QuickDevFramework   文件: ScreenUtil.java
/**
 * 获取屏幕高(包含虚拟键盘), 单位 px
 * @return screenHeight;
 * */
public static int getScreenHeight() {
    WindowManager windowManager = (WindowManager) ContextProvider.get().getSystemService(Context.WINDOW_SERVICE);
    Display display = windowManager.getDefaultDisplay();
    DisplayMetrics dm = new DisplayMetrics();
    Class c;
    try {
        c = Class.forName("android.view.Display");
        @SuppressWarnings("unchecked")
        Method method = c.getMethod("getRealMetrics", DisplayMetrics.class);
        method.invoke(display, dm);
    } catch (Exception e) {
        e.printStackTrace();
        return 0;
    }
    return dm.heightPixels;
}
 
源代码7 项目: android_9.0.0_r45   文件: PowerManagerService.java
@Override
public void onDisplayStateChange(int state) {
    // This method is only needed to support legacy display blanking behavior
    // where the display's power state is coupled to suspend or to the power HAL.
    // The order of operations matters here.
    synchronized (mLock) {
        if (mDisplayState != state) {
            mDisplayState = state;
            if (state == Display.STATE_OFF) {
                if (!mDecoupleHalInteractiveModeFromDisplayConfig) {
                    setHalInteractiveModeLocked(false);
                }
                if (!mDecoupleHalAutoSuspendModeFromDisplayConfig) {
                    setHalAutoSuspendModeLocked(true);
                }
            } else {
                if (!mDecoupleHalAutoSuspendModeFromDisplayConfig) {
                    setHalAutoSuspendModeLocked(false);
                }
                if (!mDecoupleHalInteractiveModeFromDisplayConfig) {
                    setHalInteractiveModeLocked(true);
                }
            }
        }
    }
}
 
源代码8 项目: NewbieGuide   文件: ScreenUtils.java
/**
 * 虚拟操作拦(home等)是否显示
 */
public static boolean isNavigationBarShow(Activity activity) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
        Display display = activity.getWindowManager().getDefaultDisplay();
        Point size = new Point();
        Point realSize = new Point();
        display.getSize(size);
        display.getRealSize(realSize);
        return realSize.y != size.y;
    } else {
        boolean menu = ViewConfiguration.get(activity).hasPermanentMenuKey();
        boolean back = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK);
        if (menu || back) {
            return false;
        } else {
            return true;
        }
    }
}
 
源代码9 项目: PHONK   文件: PPopupDialogFragment.java
private void calculateSize() {
    Window window = getDialog().getWindow();
    Point size = new Point();
    Display display = window.getWindowManager().getDefaultDisplay();
    display.getSize(size);

    if (mW < 0) {
        mWidth = WindowManager.LayoutParams.WRAP_CONTENT;
    } else if (mW > 1) {
        mWidth = WindowManager.LayoutParams.MATCH_PARENT;
    } else {
        mWidth = (int) (size.x * mW);
    }

    if (mH < 0) {
        mHeight = WindowManager.LayoutParams.WRAP_CONTENT;
    } else if (mH > 1) {
        mHeight = WindowManager.LayoutParams.MATCH_PARENT;
    } else {
        mHeight = (int) (size.y * mH);
    }
}
 
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Get the current device's screen resolution
    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);

    // Initialize our size based variables based on the screen resolution
    numberHorizontalPixels = size.x;
    numberVerticalPixels = size.y;
    blockSize = numberHorizontalPixels / gridWidth;
    gridHeight = numberVerticalPixels / blockSize;

    Log.d("Debugging", "In onCreate");
    newGame();
    draw();
}
 
@Override
protected void onStart() {
	WindowManager m = getWindowManager();
	Display d = m.getDefaultDisplay(); // 为获取屏幕宽、高

	//System.out.println("d.getHeight():" + d.getHeight());
	LayoutParams p = getWindow().getAttributes(); // 获取对话框当前的参数值
	p.height = (int) (d.getHeight() * 1.0); // 高度设置为屏幕的1.0
	p.width = (int) (d.getWidth() * 1.0); // 宽度设置为屏幕的0.8
	p.alpha = 1.0f; // 设置本身透明度
	p.dimAmount = 0.0f; // 设置黑暗度

	getWindow().setAttributes(p); // 设置生效
	getWindow().setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM); // 设置靠右对齐
	super.onStart();
}
 
源代码12 项目: PocketEOS-Android   文件: WalletCodeDialog.java
private void setCustomDialog() {

        View mView = LayoutInflater.from(getContext()).inflate(R.layout.dialog_wallet_code, null);
        walletCode = mView.findViewById(R.id.wallet_code);
        go_weixin_friend = mView.findViewById(R.id.go_weixin_friend);
        go_weixin_circle = mView.findViewById(R.id.go_weixin_circle);
        go_qq_friend = mView.findViewById(R.id.go_qq_friend);
        go_qzone = mView.findViewById(R.id.go_qzone);
        ll = mView.findViewById(R.id.ll);


        go_weixin_friend.setOnClickListener(this);
        go_weixin_circle.setOnClickListener(this);
        go_qq_friend.setOnClickListener(this);
        go_qzone.setOnClickListener(this);
        super.setContentView(mView);
        WindowManager windowManager = getWindow().getWindowManager();
        Display display = windowManager.getDefaultDisplay();
        WindowManager.LayoutParams lp = this.getWindow().getAttributes();
        lp.width = (int) (display.getWidth() * 0.78); //设置宽度
        this.getWindow().setAttributes(lp);
    }
 
源代码13 项目: letv   文件: BlurUtils.java
@SuppressLint({"NewApi"})
public static void blur_3(Context context, Bitmap bkg, View view) {
    long startMs = System.currentTimeMillis();
    Display d = ((Activity) context).getWindowManager().getDefaultDisplay();
    Bitmap overlay = Bitmap.createBitmap((int) (((float) d.getWidth()) / 1.0f), (int) (((float) d.getHeight()) / 1.0f), Config.ARGB_8888);
    Canvas canvas = new Canvas(overlay);
    canvas.scale(1.0f / 1.0f, 1.0f / 1.0f);
    Paint paint = new Paint();
    paint.setFlags(2);
    canvas.drawBitmap(bkg, 0.0f, 0.0f, paint);
    overlay = FastBlur.doBlur(overlay, (int) 100.0f, true);
    if (LetvUtils.getSDKVersion() >= 16) {
        view.setBackground(new BitmapDrawable(context.getResources(), overlay));
    } else {
        view.setBackgroundDrawable(new BitmapDrawable(context.getResources(), overlay));
    }
}
 
源代码14 项目: MyHearts   文件: ScreenResolution.java
/**
 * Gets resolution on old devices.
 * Tries the reflection to get the real resolution first.
 * Fall back to getDisplayMetrics if the above method failed.
 * */
private static Pair<Integer, Integer> getRealResolutionOnOldDevice(Context ctx) {
  try{
    WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    Method mGetRawWidth = Display.class.getMethod("getRawWidth");
    Method mGetRawHeight = Display.class.getMethod("getRawHeight");
    Integer realWidth = (Integer) mGetRawWidth.invoke(display);
    Integer realHeight = (Integer) mGetRawHeight.invoke(display);
    return new Pair<Integer, Integer>(realWidth, realHeight);
  }
  catch (Exception e) {
    DisplayMetrics disp = ctx.getResources().getDisplayMetrics();
    return new Pair<Integer, Integer>(disp.widthPixels, disp.heightPixels);
  }
}
 
@Override
public void onConfigurationChanged(Configuration newConfig) {
    Display display = ((WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    screenWidth = size.x;
    screenHeight = size.y;
    Log.e("KCA", "w/h: " + String.valueOf(screenWidth) + " " + String.valueOf(screenHeight));

    if (mParams != null) {
        mParams.x = (screenWidth - popupWidth) / 2;
        mParams.y = (int)((screenHeight - popupHeight) * 0.8);
    }

    super.onConfigurationChanged(newConfig);
}
 
源代码16 项目: homeassist   文件: EntityFragment.java
private void refreshPreferenceConfigs() {
    Activity activity = getActivity();
    if (activity != null && !activity.isFinishing()) {
        Display display = getActivity().getWindowManager().getDefaultDisplay();
        DisplayMetrics outMetrics = new DisplayMetrics();
        display.getMetrics(outMetrics);

        float density = getResources().getDisplayMetrics().density;
        //float dpHeight = outMetrics.heightPixels / density;
        float dpWidth = outMetrics.widthPixels / density;

        //final int spanCount = getResources().getInteger(R.integer.grid_columns);
        int spanCount = (int) Math.floor(dpWidth / 90.0d);
        final int prefCount = Integer.parseInt(mSharedPref.getString("num_columns", "0"));
        if (prefCount != 0) {
            spanCount = prefCount;
        }

        mRecyclerView.setLayoutManager(new GridLayoutManager(getContext(), spanCount));

        int resId = R.anim.grid_anim;
        LayoutAnimationController animation = AnimationUtils.loadLayoutAnimation(getContext(), resId);
        mRecyclerView.setLayoutAnimation(animation);
    }
}
 
源代码17 项目: attendee-checkin   文件: ScannerManager.java
private int getDisplayInfo(Point size) {
    WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    if (size != null) {
        display.getSize(size);
    }
    int rotation = display.getRotation();
    switch (rotation) {
        case Surface.ROTATION_0:
            return 0;
        case Surface.ROTATION_90:
            return 90;
        case Surface.ROTATION_180:
            return 180;
        case Surface.ROTATION_270:
            return 270;
    }
    throw new RuntimeException("Unknown screen rotation: " + rotation);
}
 
源代码18 项目: PocketEOS-Android   文件: ChangePasswordDialog.java
private void setCustomDialog() {
    View mView = LayoutInflater.from(getContext()).inflate(R.layout.dialog_change_password, null);
    sureBtn = (TextView) mView.findViewById(R.id.dialog_confirm_sure);
    cancleBtn = (TextView) mView.findViewById(R.id.dialog_confirm_cancle);
    mClearEditText = (ClearEditText) mView.findViewById(R.id.dialog_old_password);
    mClearEditText1 = (ClearEditText) mView.findViewById(R.id.dialog_old_two_password);
    mClearEditText2 = (ClearEditText) mView.findViewById(R.id.dialog_new_password);
    sureBtn.setOnClickListener(this);
    cancleBtn.setOnClickListener(this);
    super.setContentView(mView);
    WindowManager windowManager = getWindow().getWindowManager();
    Display display = windowManager.getDefaultDisplay();
    WindowManager.LayoutParams lp = this.getWindow().getAttributes();
    lp.width = (int) (display.getWidth() * 0.78); //设置宽度
    this.getWindow().setAttributes(lp);
}
 
@Override
public void onConfigurationChanged (Configuration newConfig) {
	WindowManager wm = (WindowManager) this.context.getSystemService(Context.WINDOW_SERVICE);
	Display display = wm.getDefaultDisplay();
	Point dSize = new Point();
	display.getSize(dSize);
	this.sl1.displayWidth = this.sl2.displayWidth = this.sl3.displayWidth = dSize.x - iconSize - 5;
	this.invalidate();
}
 
源代码20 项目: 365browser   文件: DisplayAndroidManager.java
DisplayAndroid getDisplayAndroid(Display display) {
    int sdkDisplayId = display.getDisplayId();
    DisplayAndroid displayAndroid = mIdMap.get(sdkDisplayId);
    if (displayAndroid == null) {
        displayAndroid = addDisplay(display);
    }
    return displayAndroid;
}
 
源代码21 项目: Wrox-ProfessionalAndroid-4E   文件: MainActivity.java
private void listing16_8() {
  // Listing 16-8: Finding the screen orientation relative to the natural orientation
  WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
  Display display = wm.getDefaultDisplay();

  int rotation = display.getRotation();
  switch (rotation) {
    case (Surface.ROTATION_0) : break;   // Natural
    case (Surface.ROTATION_90) : break;  // On its left side
    case (Surface.ROTATION_180) : break; // Upside down
    case (Surface.ROTATION_270) : break; // On its right side
    default: break;
  }
}
 
源代码22 项目: BaseProject   文件: DensityHelper.java
/**
 * 重新计算displayMetrics.xhdpi, 使单位pt重定义为设计稿的相对长度
 * @see #activate()
 *
 * @param context
 * @param designWidth 设计稿的宽度
 */
private static void resetDensity(Context context, float designWidth){
    WindowManager windowManager = (WindowManager) context.getSystemService(WINDOW_SERVICE);
    if (windowManager != null) {
        Display defDisplay = windowManager.getDefaultDisplay();
        Point size = new Point();
        defDisplay.getSize(size);
        context.getResources().getDisplayMetrics().xdpi = size.x / designWidth * 72f;
    }
}
 
源代码23 项目: always-on-amoled   文件: ChargeChangeReceiver.java
private boolean isDisplayOn(Context context) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        DisplayManager dm = (DisplayManager) context.getSystemService(Context.DISPLAY_SERVICE);
        for (Display display : dm.getDisplays()) {
            if (display.getState() != Display.STATE_OFF) {
                return true;
            }
        }
        return false;
    } else {
        PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        return powerManager.isScreenOn();
    }
}
 
源代码24 项目: PlayTogether   文件: DirListPopupWindow.java
private void calcWidthAndHeight()
{
	WindowManager windowManager = (WindowManager) mContext.getSystemService(Context
			.WINDOW_SERVICE);
	Display defaultDisplay = windowManager.getDefaultDisplay();
	DisplayMetrics metrics = new DisplayMetrics();
	defaultDisplay.getMetrics(metrics);
	//将popup的高度设置为屏幕的7分之一
	mWidth = metrics.widthPixels;
	mHeight = (int) (metrics.heightPixels * 0.7);
}
 
源代码25 项目: android_9.0.0_r45   文件: BurnInProtectionHelper.java
@Override
public void onDisplayChanged(int displayId) {
    if (displayId == mDisplay.getDisplayId()) {
        if (mDisplay.getState() == Display.STATE_DOZE
                || mDisplay.getState() == Display.STATE_DOZE_SUSPEND
                || mDisplay.getState() == Display.STATE_ON_SUSPEND) {
            startBurnInProtection();
        } else {
            cancelBurnInProtection();
        }
    }
}
 
源代码26 项目: VideoCamera   文件: VideoCaptureActivity.java
private void initializeRecordingUI() {
    Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
    mVideoRecorder = new VideoRecorder(this, mCaptureConfiguration, mVideoFile, new CameraWrapper(new NativeCamera(), display.getRotation()),
            mVideoCaptureView.getPreviewSurfaceHolder());
    mVideoCaptureView.setRecordingButtonInterface(this);
    boolean showTimer = this.getIntent().getBooleanExtra(EXTRA_SHOW_TIMER, false);
    mVideoCaptureView.showTimer(showTimer);
    if (mVideoRecorded) {
        mVideoCaptureView.updateUIRecordingFinished(getVideoThumbnail());
    } else {
        mVideoCaptureView.updateUINotRecording();
    }
    mVideoCaptureView.showTimer(mCaptureConfiguration.getShowTimer());
}
 
源代码27 项目: android_9.0.0_r45   文件: OverlayDisplayAdapter.java
@Override
public DisplayDeviceInfo getDisplayDeviceInfoLocked() {
    if (mInfo == null) {
        Display.Mode mode = mModes[mActiveMode];
        OverlayMode rawMode = mRawModes.get(mActiveMode);
        mInfo = new DisplayDeviceInfo();
        mInfo.name = mName;
        mInfo.uniqueId = getUniqueId();
        mInfo.width = mode.getPhysicalWidth();
        mInfo.height = mode.getPhysicalHeight();
        mInfo.modeId = mode.getModeId();
        mInfo.defaultModeId = mModes[0].getModeId();
        mInfo.supportedModes = mModes;
        mInfo.densityDpi = rawMode.mDensityDpi;
        mInfo.xDpi = rawMode.mDensityDpi;
        mInfo.yDpi = rawMode.mDensityDpi;
        mInfo.presentationDeadlineNanos = mDisplayPresentationDeadlineNanos +
                1000000000L / (int) mRefreshRate;   // display's deadline + 1 frame
        mInfo.flags = DisplayDeviceInfo.FLAG_PRESENTATION;
        if (mSecure) {
            mInfo.flags |= DisplayDeviceInfo.FLAG_SECURE;
        }
        mInfo.type = Display.TYPE_OVERLAY;
        mInfo.touch = DisplayDeviceInfo.TOUCH_NONE;
        mInfo.state = mState;
    }
    return mInfo;
}
 
源代码28 项目: react-native-GPay   文件: DisplayMetricsHolder.java
public static void initDisplayMetrics(Context context) {
  DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
  DisplayMetricsHolder.setWindowDisplayMetrics(displayMetrics);

  DisplayMetrics screenDisplayMetrics = new DisplayMetrics();
  screenDisplayMetrics.setTo(displayMetrics);
  WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
  Assertions.assertNotNull(
      wm,
      "WindowManager is null!");
  Display display = wm.getDefaultDisplay();

  // Get the real display metrics if we are using API level 17 or higher.
  // The real metrics include system decor elements (e.g. soft menu bar).
  //
  // See: http://developer.android.com/reference/android/view/Display.html#getRealMetrics(android.util.DisplayMetrics)
  if (Build.VERSION.SDK_INT >= 17) {
    display.getRealMetrics(screenDisplayMetrics);
  } else {
    // For 14 <= API level <= 16, we need to invoke getRawHeight and getRawWidth to get the real dimensions.
    // Since react-native only supports API level 16+ we don't have to worry about other cases.
    //
    // Reflection exceptions are rethrown at runtime.
    //
    // See: http://stackoverflow.com/questions/14341041/how-to-get-real-screen-height-and-width/23861333#23861333
    try {
      Method mGetRawH = Display.class.getMethod("getRawHeight");
      Method mGetRawW = Display.class.getMethod("getRawWidth");
      screenDisplayMetrics.widthPixels = (Integer) mGetRawW.invoke(display);
      screenDisplayMetrics.heightPixels = (Integer) mGetRawH.invoke(display);
    } catch (InvocationTargetException | IllegalAccessException | NoSuchMethodException e) {
      throw new RuntimeException("Error getting real dimensions for API level < 17", e);
    }
  }
  DisplayMetricsHolder.setScreenDisplayMetrics(screenDisplayMetrics);
}
 
源代码29 项目: LB-Launcher   文件: LauncherAppState.java
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
static DynamicGrid createDynamicGrid(Context context, DynamicGrid dynamicGrid) {
    // Determine the dynamic grid properties
    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();

    Point realSize = new Point();
    display.getRealSize(realSize);
    DisplayMetrics dm = new DisplayMetrics();
    display.getMetrics(dm);

    if (dynamicGrid == null) {
        Point smallestSize = new Point();
        Point largestSize = new Point();
        display.getCurrentSizeRange(smallestSize, largestSize);

        dynamicGrid = new DynamicGrid(context,
                context.getResources(),
                Math.min(smallestSize.x, smallestSize.y),
                Math.min(largestSize.x, largestSize.y),
                realSize.x, realSize.y,
                dm.widthPixels, dm.heightPixels);
    }

    // Update the icon size
    DeviceProfile grid = dynamicGrid.getDeviceProfile();
    grid.updateFromConfiguration(context, context.getResources(),
            realSize.x, realSize.y,
            dm.widthPixels, dm.heightPixels);
    return dynamicGrid;
}
 
源代码30 项目: VideoOS-Android-SDK   文件: VenvyDeviceUtil.java
/**
 * 获取屏幕物理尺寸
 *
 * @return
 */
public static double getScreenDimension(Context context) {
    WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = windowManager.getDefaultDisplay();
    DisplayMetrics dm = new DisplayMetrics();
    display.getMetrics(dm);

    double x = Math.pow(dm.widthPixels / dm.xdpi, 2);
    double y = Math.pow(dm.heightPixels / dm.ydpi, 2);

    DecimalFormat df = new DecimalFormat("#.##");
    return Double.parseDouble(df.format(Math.sqrt(x + y)));
}
 
 类所在包
 同包方法