Android平板適配寬高笨方法


遇到的問題

  • 抽屜裏的headview背景圖片在手機里正常,而跑在平板裏就變得非常扁

解決方法

先說第一種方法,這種方法只會獲得屏幕分辨率,而Android平板的分辨率有可能比配置高的Android智能機分辨率還低,我手機分辨率是,而公司分配的平板分辨率是800*1280,所以沒有

navView.inflateHeaderView(R.layout.nav_header_main);
WindowManager wm = (WindowManager) getContext()
            .getSystemService(Context.WINDOW_SERVICE);
int width = wm.getDefaultDisplay().getWidth();
int height = wm.getDefaultDisplay().getHeight();
View headerView = navView.getHeaderView(0);
mLayoutOfHeader = headerView.findViewById(R.id.ll_header_bg);
if (width>790 && height >1100){
            heightOfHeader = (int) getResources().getDimension(R.dimen.header_height);
            Log.d("MainActivity", "heightOfHeader:" + heightOfHeader);
            mLayoutOfHeader.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,heightOfHeader));
        }

第二種有用的方法–自己根據分辨率,屏幕DPI(dots-per-inch(每英寸的點數))計算設備的物理英寸大小

先看結果

Log.d("abc", x + "\n" + y + "\n" + diagonal + "\n" + dens + "\n");
Log.d("abc","The screenInches "+screenInches); 

首先是平板測試結果       

輸出日誌爲
07-25 09:18:32.532 32128-32128/? D/abc: 640000.0
1478656.0
1455.5603731896524
213
07-25 09:18:32.532 32128-32128/? D/abc: The screenInches 6.833616775538275
屏幕大小大約爲6.8

再看看我手機的測試結果
輸出日誌
07-25 09:35:27.193 22155-22155/com.example.administrator.hlfrobot D/abc: 1166400.0
3686400.0
2202.9071700822983
480
07-25 09:35:27.193 22155-22155/com.example.administrator.hlfrobot D/abc: The screenInches 4.589389937671455
屏幕大小爲4.6

只要判斷出物理屏幕的大小就可以愉快的判斷來動態設置具體的寬高了。

現在貼一下代碼

        DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
        int width = displayMetrics.widthPixels;
        int height = displayMetrics.heightPixels;
        double x = Math.pow(width,2);
        double y = Math.pow(height,2);
        double diagonal = Math.sqrt(x + y);
        int dens = displayMetrics.densityDpi;
        double screenInches = diagonal/(double)dens;
        Log.d("abc", x + "\n" + y + "\n" + diagonal + "\n" + dens + "\n");
        Log.d("abc","The screenInches "+screenInches);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章