/** * 状态栏的高度 */ public class StatusBarHeightView extends LinearLayout { private int statusBarHeight; private int type; public StatusBarHeightView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); init(attrs); } public StatusBarHeightView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(attrs); } public StatusBarHeightView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr); init(attrs); } private void init(@Nullable AttributeSet attrs) { int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { if (resourceId > 0) { statusBarHeight = getResources().getDimensionPixelSize(resourceId); } } else { //低版本 直接设置0 statusBarHeight = 0; } if (attrs != null) { TypedArray typedArray = getContext().obtainStyledAttributes(attrs, R.styleable.StatusBarHeightView); type = typedArray.getInt(R.styleable.StatusBarHeightView_use_type, 0); typedArray.recycle(); } if (type == 1) { setPadding(getPaddingLeft(), statusBarHeight, getPaddingRight(), getPaddingBottom()); } } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (type == 0) { setMeasuredDimension(getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec), statusBarHeight); } else { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } } }
android 状态栏的高度
最新推荐文章于 2024-08-20 15:47:14 发布