Android获取屏幕宽高、屏幕密度、手动计算view大小

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  
            }
        });
    }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值