Android获取屏幕宽高、屏幕密度、手动计算view大小
16lz
2021-12-10
1、ldpi、mdpi、hdpi、xhdpi、xxhdpi
2、计算屏幕密度
3、Android APP图标大小
4、获取状态栏高度
private int getStatusBarHeight() { int result = 0; int resourceId = getResources().getIdentifier( "status_bar_height", "dimen", "android"); if (resourceId > 0) { result = getResources().getDimensionPixelSize(resourceId); } return result; }
5、获取屏幕长宽常用方法
方法一:
WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);int width = wm.getDefaultDisplay().getWidth();int height = wm.getDefaultDisplay().getHeight();
方法二:
WindowManager wm1 = this.getWindowManager();int width = wm1.getDefaultDisplay().getWidth();int height = wm1.getDefaultDisplay().getHeight();
方法三:
DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);int mScreenWidth = dm.widthPixels;int mScreenHeight = dm.heightPixels;
6、手动计算View高度,动态布局
private void adjustViewPagerLayoutParams() { final int w = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); final int h = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); ViewTreeObserver vto = chartPager.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { chartPager.getViewTreeObserver().removeGlobalOnLayoutListener(this); WindowManager wm = (WindowManager) ProjectActivity.this.getSystemService(Context.WINDOW_SERVICE); int height = wm.getDefaultDisplay().getHeight(); footerView.measure(w, h); LinearLayout lltitle = (LinearLayout) headerView.findViewById(R.id.chart_title); lltitle.measure(w, h); int viewHeight = lltitle.getMeasuredHeight() + footerView.getMeasuredHeight() + (int) (getResources().getDimension(R.dimen.normal_title_bar_h) * 2.5); chartPager.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, height - viewHeight)); //这里的高绝对不能是WRAP_CONTENT } }); }
更多相关文章
- Android黑科技 自动点击
- Android(安卓)中将 "base64图片" 解码为".png"图片
- Android(安卓)setMovementMethod() 方法
- Android(安卓)获取屏幕宽度、高度、dpi等信息
- Android处理Bitmap的一些方法
- 代码实现android手机信号监听
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用
- python list.sort()根据多个关键字排序的方法实现