成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android開發中不得不了解知識點

開發 開發工具
我們可以用GridView控件或RecyclerView控件來實現,提倡用RecyclerView控件來實現了。一屏顯示16個應用,這樣就需要和屏幕的知識點聯系上了。

 

對于這樣的布局,我們可以用GridView控件或RecyclerView控件來實現,提倡用RecyclerView控件來實現了。一屏顯示16個應用,這樣就需要和屏幕的知識點聯系上了。

1、獲取頂部status bar 高度

  1. /** 
  2. * 獲取頂部status bar 高度 
  3. */ 
  4. private int getStatusBarHeight() { 
  5.     Resources resources = mActivity.getResources(); 
  6.     int resourceId = resources.getIdentifier("status_bar_height""dimen","android"); 
  7.     int height = resources.getDimensionPixelSize(resourceId); 
  8.     Log.v("dbw""Status height:" + height); 
  9.     return height; 

2、獲取底部 navigation bar 高度

  1. private int getNavigationBarHeight() { 
  2.     Resources resources = mActivity.getResources(); 
  3.     int resourceId = resources.getIdentifier("navigation_bar_height","dimen""android"); 
  4.     int height = resources.getDimensionPixelSize(resourceId); 
  5.     Log.v("dbw""Navi height:" + height); 
  6.     return height; 

這里對于底部,我們得花點心思,華為手機自帶下面有底部導航。我們要先通過判斷設備是否有返回鍵、菜單鍵(不是虛擬鍵,是手機屏幕外的按鍵)來確定是否有navigation bar

(已驗證可行)。主要是KeyEvent.KEYCODE_BACK和hasPermanentMenuKey

  1. @SuppressLint("NewApi")    
  2.     public static boolean checkDeviceHasNavigationBar(Context activity) {   
  3.         boolean hasMenuKey = ViewConfiguration.get(activity)   
  4.                 .hasPermanentMenuKey();   
  5.         boolean hasBackKey = KeyCharacterMap   
  6.                 .deviceHasKey(KeyEvent.KEYCODE_BACK);   
  7.         if (!hasMenuKey && !hasBackKey) {   
  8.             // 這個設備有一個導航欄   
  9.             return true;   
  10.         }   
  11.         return false;   
  12.     }  

我們要獲取屏幕的總高度減去 頂部高度和底部導航的高度(設備存在底部導航),如果你的屏幕還有其他控件,也要一起減去,再平均四等分。這樣我們的RecyclerView的每個itemView才能均等。

3、屏幕高度

  1. DisplayMetrics displayMetrics = new DisplayMetrics(); 
  2. Activity activity = (Activity) mContext; 
  3. activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); 
  4. LayoutParams layoutParams = holder.itemView.getLayoutParams(); 
  5. layoutParams.height = (displayMetrics.heightPixels - topHeight)/4; 
  6.  holder.itemView.setLayoutParams(layoutParams); 

其中topHeight為頂部、導航和其他控件的總高度。這樣就能實現我們的需求了。

【本文為51CTO專欄作者“洪生鵬”的原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2014-06-16 10:03:54

分組交換

2012-02-21 09:20:50

Hadoop大數據

2019-06-06 16:13:14

JVMJava后端

2016-12-06 08:35:47

瀏覽器內核Gecko

2018-04-16 23:14:39

SD-WANSDN網絡

2015-03-04 09:23:46

廣域網網絡優化

2013-02-19 10:01:53

大數據大數據科學主流解決方案

2019-11-14 15:38:46

AndroidRelease項目

2024-06-05 11:36:28

2010-05-26 15:58:52

MySQL遠程連接

2010-05-10 13:01:03

OracleDBA面試

2010-05-21 09:40:57

MySQL出錯代碼列表

2010-05-25 09:58:43

MySQL數據庫

2010-11-02 14:51:11

職場

2012-04-09 16:13:21

Android開發者

2019-08-09 11:40:38

JavaScriptCSS技術

2020-07-09 12:50:29

JVM內存管理Java

2019-12-24 14:04:59

PythonExcel數據處理

2021-04-12 08:56:00

多線程Future模式

2009-11-11 16:48:29

Visual C++
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 伊人春色在线观看 | 国产精品欧美一区二区 | 亚洲视频免费在线观看 | 精品一区二区三区四区视频 | av香蕉| 午夜免费观看网站 | 国产亚洲精品久久19p | 中文字幕在线一区 | 欧美精品一二区 | 91.com视频| 伊人久久综合 | 无码一区二区三区视频 | 成人在线视频免费观看 | 久久久久久高潮国产精品视 | 欧美激情一区二区三区 | 日韩视频中文字幕 | 亚洲www. | 91夜色在线观看 | 精品久久久久久久久久久 | 精品欧美一区二区三区久久久小说 | 激情伊人网 | 国产小视频精品 | 在线一区二区三区 | 在线观看涩涩视频 | 日本一级淫片免费啪啪3 | 中文字幕日韩欧美一区二区三区 | 一区二区久久 | 在线视频亚洲 | 国产黄色大片在线观看 | 国产男女视频网站 | 日韩在线视频一区 | 在线观看www | 成人国产免费观看 | 日本午夜免费福利视频 | 日日夜夜免费精品视频 | 亚洲一区二区av | 久久久做 | 欧美日本免费 | 这里精品 | 亚洲va国产日韩欧美精品色婷婷 | 久久不卡日韩美女 |