android.view.Display#getMetrics ( )源码实例Demo

下面列出了android.view.Display#getMetrics ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: blade-player   文件: LoginDialog.java
private void setLayoutSize() {
    WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    DisplayMetrics metrics = new DisplayMetrics();
    display.getMetrics(metrics);

    int dialogWidth = ViewGroup.LayoutParams.MATCH_PARENT;
    int dialogHeight = ViewGroup.LayoutParams.MATCH_PARENT;

    // If width or height measured in dp exceeds accepted range,
    // use max values and convert them back to pixels before setting the size.
    if (metrics.widthPixels / metrics.density > MAX_WIDTH_DP) {
        dialogWidth = (int) (MAX_WIDTH_DP * metrics.density);
    }

    if (metrics.heightPixels / metrics.density > MAX_HEIGHT_DP) {
        dialogHeight = (int) (MAX_HEIGHT_DP * metrics.density);
    }

    LinearLayout layout = (LinearLayout) findViewById(R.id.com_spotify_sdk_login_webview_container);
    layout.setLayoutParams(new FrameLayout.LayoutParams(dialogWidth, dialogHeight, Gravity.CENTER));
}
 
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);
}
 
源代码3 项目: MaterialDesignSupport   文件: ResourceHelper.java
public static int getScreenHeight() {
    Context context = CoreMaterialApplication.getContext();
    if (context == null) {
        return -1;
    }

    WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    if (windowManager == null) {
        return -1;
    }

    Display display = windowManager.getDefaultDisplay();
    if (display == null) {
        return -1;
    }

    DisplayMetrics metrics = new DisplayMetrics();
    display.getMetrics(metrics);
    int height = metrics.heightPixels;

    return height;
}
 
源代码4 项目: MobileInfo   文件: ScreenInfo.java
private static boolean checkHasNavigationBar(Context context) {
    if (context instanceof Activity) {
        WindowManager windowManager = ((Activity) context).getWindowManager();
        Display d = windowManager.getDefaultDisplay();

        DisplayMetrics realDisplayMetrics = new DisplayMetrics();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
            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;
    }
    return false;
}
 
源代码5 项目: panoramagl   文件: PLManager.java
@Override
public CGSize getSize() {
    Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
    final DisplayMetrics displayMetrics = new DisplayMetrics();
    display.getMetrics(displayMetrics);
    return mTempSize.setValues(displayMetrics.widthPixels, displayMetrics.heightPixels);
}
 
@NonNull
@Override
protected DisplayMetrics getDisplayMetrics() {
    Display defaultDisplay = mWindowManager.getDefaultDisplay();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
        defaultDisplay.getRealMetrics(mBaseMetrics);
    } else {
        defaultDisplay.getMetrics(mBaseMetrics);
    }
    return mBaseMetrics;
}
 
源代码7 项目: Animer   文件: ScrollerActivity.java
private void measureDisplay() {
    Display display = getWindowManager().getDefaultDisplay();
    DisplayMetrics outMetrics = new DisplayMetrics ();
    display.getMetrics(outMetrics);
    float density  = getResources().getDisplayMetrics().density;
    float dpHeight = outMetrics.heightPixels / density;
    float dpWidth  = outMetrics.widthPixels / density;
    screenHeight = dpToPx(dpHeight,getResources());
    screenWidth = dpToPx(dpWidth,getResources());
    cellSize =  (int) getResources().getDimension(R.dimen.cell_size_dp);
    Log.e("inDP","doHeight"+ dpHeight + "dpWidth" + dpWidth);
}
 
源代码8 项目: Phlex   文件: Phlex.java
public static int dp2px(Context context, int dp) {
    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    DisplayMetrics displaymetrics = new DisplayMetrics();
    display.getMetrics(displaymetrics);
    return (int) (dp * displaymetrics.density + 0.5f);
}
 
源代码9 项目: Loop   文件: DisplayUtility.java
public static int px2dp(Context context, int px) {
    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();

    DisplayMetrics displaymetrics = new DisplayMetrics();
    display.getMetrics(displaymetrics);

    return (int) (px / displaymetrics.density + 0.5f);
}
 
源代码10 项目: Phlex   文件: Phlex.java
public static int px2dp(Context context, int px) {
    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    DisplayMetrics displaymetrics = new DisplayMetrics();
    display.getMetrics(displaymetrics);
    return (int) (px / displaymetrics.density + 0.5f);
}
 
源代码11 项目: CanPhotos   文件: CanPhotoHelper.java
/**
 * 得到屏幕相关参数
 *
 * @param context
 * @return
 */
public DisplayMetrics getScreenDisplayMetrics(Context context) {
    WindowManager manager = (WindowManager) context
            .getSystemService(Context.WINDOW_SERVICE);

    DisplayMetrics displayMetrics = new DisplayMetrics();
    Display display = manager.getDefaultDisplay();
    display.getMetrics(displayMetrics);

    return displayMetrics;

}
 
源代码12 项目: letv   文件: BaseApplication.java
@TargetApi(17)
public void initScreenInfo() {
    Display display = ((WindowManager) getSystemService("window")).getDefaultDisplay();
    DisplayMetrics dm = new DisplayMetrics();
    display.getMetrics(dm);
    sWidth = dm.widthPixels;
    sHeight = dm.heightPixels;
    sDensity = dm.density;
    if (LetvUtils.getSDKVersion() >= 17) {
        display.getRealMetrics(dm);
        sRawHeight = dm.heightPixels;
        return;
    }
    sRawHeight = sHeight;
}
 
源代码13 项目: mollyim-android   文件: SignalPinReminderDialog.java
public static void show(@NonNull Context context, @NonNull Launcher launcher, @NonNull Callback mainCallback) {
  if (!SignalStore.kbsValues().hasPin()) {
    throw new AssertionError("Must have a PIN!");
  }

  Log.i(TAG, "Showing PIN reminder dialog.");

  AlertDialog dialog = new AlertDialog.Builder(context, ThemeUtil.isDarkTheme(context) ? R.style.Theme_Signal_AlertDialog_Dark_Cornered_ColoredAccent : R.style.Theme_Signal_AlertDialog_Light_Cornered_ColoredAccent)
                                      .setView(R.layout.kbs_pin_reminder_view)
                                      .setCancelable(false)
                                      .setOnCancelListener(d -> RegistrationLockReminders.scheduleReminder(context, false))
                                      .create();

  WindowManager  windowManager = ServiceUtil.getWindowManager(context);
  Display        display       = windowManager.getDefaultDisplay();
  DisplayMetrics metrics       = new DisplayMetrics();
  display.getMetrics(metrics);

  dialog.show();
  dialog.getWindow().setLayout((int)(metrics.widthPixels * .80), ViewGroup.LayoutParams.WRAP_CONTENT);

  EditText pinEditText = (EditText) DialogCompat.requireViewById(dialog, R.id.pin);
  TextView pinStatus   = (TextView) DialogCompat.requireViewById(dialog, R.id.pin_status);
  TextView reminder    = (TextView) DialogCompat.requireViewById(dialog, R.id.reminder);
  View     skip        = DialogCompat.requireViewById(dialog, R.id.skip);
  View     submit      = DialogCompat.requireViewById(dialog, R.id.submit);

  SpannableString reminderText = new SpannableString(context.getString(R.string.KbsReminderDialog__to_help_you_memorize_your_pin));
  SpannableString forgotText   = new SpannableString(context.getString(R.string.KbsReminderDialog__forgot_pin));

  pinEditText.post(() -> {
    if (pinEditText.requestFocus()) {
      ServiceUtil.getInputMethodManager(pinEditText.getContext()).showSoftInput(pinEditText, 0);
    }
  });
  ViewCompat.setAutofillHints(pinEditText, HintConstants.AUTOFILL_HINT_PASSWORD);

  switch (SignalStore.pinValues().getKeyboardType()) {
    case NUMERIC:
      pinEditText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
      break;
    case ALPHA_NUMERIC:
      pinEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
      break;
  }

  ClickableSpan clickableSpan = new ClickableSpan() {
    @Override
    public void onClick(@NonNull View widget) {
      dialog.dismiss();
      launcher.launch(CreateKbsPinActivity.getIntentForPinChangeFromForgotPin(context), CreateKbsPinActivity.REQUEST_NEW_PIN);
    }
  };

  forgotText.setSpan(clickableSpan, 0, forgotText.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

  reminder.setText(new SpannableStringBuilder(reminderText).append(" ").append(forgotText));
  reminder.setMovementMethod(LinkMovementMethod.getInstance());

  PinVerifier.Callback callback = getPinWatcherCallback(context, dialog, pinEditText, pinStatus, mainCallback);
  PinVerifier          verifier = new V2PinVerifier();

  skip.setOnClickListener(v -> {
    dialog.dismiss();
    mainCallback.onReminderDismissed(callback.hadWrongGuess());
  });

  submit.setEnabled(false);
  submit.setOnClickListener(v -> {
    Editable pinEditable = pinEditText.getText();

    verifier.verifyPin(pinEditable == null ? null : pinEditable.toString(), callback);
  });

  pinEditText.addTextChangedListener(new SimpleTextWatcher() {

    private final String localHash = Objects.requireNonNull(SignalStore.kbsValues().getLocalPinHash());

    @Override
    public void onTextChanged(String text) {
      if (text.length() >= KbsConstants.MINIMUM_PIN_LENGTH) {
        submit.setEnabled(true);

        if (PinHashing.verifyLocalPinHash(localHash, text)) {
          dialog.dismiss();
          mainCallback.onReminderCompleted(text, callback.hadWrongGuess());
        }
      } else {
        submit.setEnabled(false);
      }
    }
  });
}
 
源代码14 项目: memoir   文件: Helper.java
private static DisplayMetrics getDisplayMetrics() {
    Display display = ((WindowManager) RTApi.getApplicationContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
    DisplayMetrics metrics = new DisplayMetrics();
    display.getMetrics(metrics);
    return metrics;
}
 
源代码15 项目: memoir   文件: Helper.java
private static DisplayMetrics getDisplayMetrics() {
    Display display = ((WindowManager) RTApi.getApplicationContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
    DisplayMetrics metrics = new DisplayMetrics();
    display.getMetrics(metrics);
    return metrics;
}
 
源代码16 项目: iBeebo   文件: SmileyPickerUtility.java
public static int getScreenHeight(Activity paramActivity) {
    Display display = paramActivity.getWindowManager().getDefaultDisplay();
    DisplayMetrics metrics = new DisplayMetrics();
    display.getMetrics(metrics);
    return metrics.heightPixels;
}
 
源代码17 项目: Android-RTEditor   文件: Helper.java
private static DisplayMetrics getDisplayMetrics() {
    Display display = ((WindowManager) RTApi.getApplicationContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
    DisplayMetrics metrics = new DisplayMetrics();
    display.getMetrics(metrics);
    return metrics;
}
 
源代码18 项目: TigerVideo   文件: DisplayManager.java
public static float screenHeightPhysical(Context context) {
    Display display = getDisplay(context);
    DisplayMetrics metrics = new DisplayMetrics();
    display.getMetrics(metrics);
    return (float)display.getHeight() / metrics.densityDpi;
}
 
源代码19 项目: TigerVideo   文件: DisplayManager.java
public static float screenWidthPhysical(Context context) {
    Display display = getDisplay(context);
    DisplayMetrics metrics = new DisplayMetrics();
    display.getMetrics(metrics);
    return (float)display.getWidth() / metrics.densityDpi;
}
 
@SuppressWarnings("deprecation")
public static Bitmap acquireScreenshot(Context context) {
    WindowManager mWinManager = (WindowManager) context
            .getSystemService(Context.WINDOW_SERVICE);
    DisplayMetrics metrics = new DisplayMetrics();
    Display display = mWinManager.getDefaultDisplay();
    display.getMetrics(metrics);
    // 屏幕高
    int height = metrics.heightPixels;
    // 屏幕的宽
    int width = metrics.widthPixels;

    int pixelformat = display.getPixelFormat();
    PixelFormat localPixelFormat1 = new PixelFormat();
    PixelFormat.getPixelFormatInfo(pixelformat, localPixelFormat1);
    // 位深
    int deepth = localPixelFormat1.bytesPerPixel;

    byte[] arrayOfByte = new byte[height * width * deepth];
    try {
        // 读取设备缓存,获取屏幕图像流
        InputStream localInputStream = readAsRoot();
        DataInputStream localDataInputStream = new DataInputStream(
                localInputStream);
        localDataInputStream.readFully(arrayOfByte);
        localInputStream.close();

        int[] tmpColor = new int[width * height];
        int r, g, b;
        for (int j = 0; j < width * height * deepth; j += deepth) {
            b = arrayOfByte[j] & 0xff;
            g = arrayOfByte[j + 1] & 0xff;
            r = arrayOfByte[j + 2] & 0xff;
            tmpColor[j / deepth] = (r << 16) | (g << 8) | b | (0xff000000);
        }
        // 构建bitmap
        Bitmap scrBitmap = Bitmap.createBitmap(tmpColor, width, height,
                Bitmap.Config.ARGB_8888);
        return scrBitmap;

    } catch (Exception e) {
        L.d( "#### 读取屏幕截图失败");
        e.printStackTrace();
    }
    return null;

}