真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Android獲取屏幕的多種寬高信息的示例代碼

本文主要介紹了Android 獲取屏幕的多種寬高信息的示例代碼,分享給大家,具體如下:

創(chuàng)新互聯(lián)建站是一家從事企業(yè)網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、行業(yè)門戶網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)制作的專業(yè)網(wǎng)站建設(shè)公司,擁有經(jīng)驗(yàn)豐富的網(wǎng)站建設(shè)工程師和網(wǎng)頁設(shè)計(jì)人員,具備各種規(guī)模與類型網(wǎng)站建設(shè)的實(shí)力,在網(wǎng)站建設(shè)領(lǐng)域樹立了自己獨(dú)特的設(shè)計(jì)風(fēng)格。自公司成立以來曾獨(dú)立設(shè)計(jì)制作的站點(diǎn)上千多家。

包含的寬高信息如下圖所示:

Android 獲取屏幕的多種寬高信息的示例代碼

在模擬器上獲取到的數(shù)據(jù):

08-26 07:19:32.712 7834-7834/com.czy.screeninfo E/MainActivity: getTotalScreenHeight 1920
08-26 07:19:33.505 7834-7834/com.czy.screeninfo E/MainActivity: getScreenWidth 1080
08-26 07:19:34.211 7834-7834/com.czy.screeninfo E/MainActivity: getAvailableScreenHeight 1794
08-26 07:19:34.979 7834-7834/com.czy.screeninfo E/MainActivity: getStatusBarHeight 63
08-26 07:19:35.580 7834-7834/com.czy.screeninfo E/MainActivity: getVirtualBarHeightIfRoom 126
08-26 07:19:36.340 7834-7834/com.czy.screeninfo E/MainActivity: getVirtualBarHeight 126
08-26 07:19:37.048 7834-7834/com.czy.screeninfo E/MainActivity: getTitleHeight 147

具體的代碼:

/**
 * 作者: chenZY
 * 時(shí)間: 2017/8/26 14:37
 * 描述:
 */
public class ScreenUtils {

  /**
   * 返回包括虛擬鍵在內(nèi)的總的屏幕高度
   * 即使虛擬按鍵顯示著,也會(huì)加上虛擬按鍵的高度
   */
  public static int getTotalScreenHeight(Activity activity) {
    DisplayMetrics displayMetrics = new DisplayMetrics();
    activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics);
    return displayMetrics.heightPixels;
  }

  /**
   * 返回屏幕的寬度
   */
  public static int getScreenWidth(Activity activity) {
    DisplayMetrics displayMetrics = new DisplayMetrics();
    activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics);
    return displayMetrics.widthPixels;
  }

  /**
   * 返回屏幕可用高度
   * 當(dāng)顯示了虛擬按鍵時(shí),會(huì)自動(dòng)減去虛擬按鍵高度
   */
  public static int getAvailableScreenHeight(Activity activity) {
    DisplayMetrics displayMetrics = new DisplayMetrics();
    activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
    return displayMetrics.heightPixels;
  }

  /**
   * 狀態(tài)欄高度
   */
  public static int getStatusBarHeight(Activity activity) {
    int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android");
    return activity.getResources().getDimensionPixelSize(resourceId);
  }

  /**
   * 獲取虛擬按鍵的高度
   * 會(huì)根據(jù)當(dāng)前是否有顯示虛擬按鍵來返回相應(yīng)的值
   * 即如果隱藏了虛擬按鍵,則返回零
   */
  public static int getVirtualBarHeightIfRoom(Activity activity) {
    DisplayMetrics displayMetrics = new DisplayMetrics();
    activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
    int usableHeight = displayMetrics.heightPixels;
    activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics);
    int realHeight = displayMetrics.heightPixels;
    return realHeight - usableHeight;
  }

  /**
   * 獲取虛擬按鍵的高度,不論虛擬按鍵是否顯示都會(huì)返回其固定高度
   */
  public static int getVirtualBarHeight(Activity activity) {
    int resourceId = activity.getResources().getIdentifier("navigation_bar_height", "dimen", "android");
    return activity.getResources().getDimensionPixelSize(resourceId);
  }

  /**
   * 標(biāo)題欄高度,如果隱藏了標(biāo)題欄則返回零
   */
  public static int getTitleHeight(Activity activity) {
    return activity.getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();
  }

  /**
   * 將dp值轉(zhuǎn)換為px值
   */
  public static int dp2px(Context context, float dpValue) {
    float scale = context.getResources().getDisplayMetrics().density;
    return (int) (dpValue * scale + 0.5f);
  }

  /**
   * 將px值轉(zhuǎn)換為dp值
   */
  public static int px2dp(Context context, float pxValue) {
    float scale = context.getResources().getDisplayMetrics().density;
    return (int) (pxValue / scale + 0.5f);
  }

}

或者也可以從這里下載代碼:Android 獲取屏幕的多種寬高信息

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


本文名稱:Android獲取屏幕的多種寬高信息的示例代碼
分享鏈接:http://weahome.cn/article/gojgci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部