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

    xiaoxiao2021-12-03  18

    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 } }); }
    转载请注明原文地址: https://ju.6miu.com/read-680197.html

    最新回复(0)