android 屏幕属性

public class CoordinateUtils {
    /**
     * 状态栏+title+view
     * @param context
     * @return
     */
    public static DisplayMetrics getScreenWH(Activity context){
        DisplayMetrics metrics = new DisplayMetrics();
        context.getWindowManager().getDefaultDisplay().getMetrics(metrics);
        return metrics;
    }

    /**
     * 去掉状态栏
     * @param context
     * @return
     */
    public static Rect getAppWH(Activity context){
        //应用程序App区域宽高等尺寸获取
        Rect rect = new Rect();
        context.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
        return rect;
    }

    /**
     * 状态栏
     * @param context
     * @return
     */
    public static int getStatusH(Activity context){
        //获取状态栏高度
        Rect rect = new Rect();
        context.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
        int statusBarHeight = rect.top;
        return statusBarHeight;
    }

    /**
     * 去掉状态栏,去掉title
     * @param context
     * @return
     */
    public static Rect getAppLayoutWH(Activity context){
        //View布局区域宽高等尺寸获取
        Rect rect = new Rect();
        context.getWindow().findViewById(Window.ID_ANDROID_CONTENT).getDrawingRect(rect);
        return rect;
    }
}
public class CoordinateActivitity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    /**
     * 0 0??? 不能在onCreate中調用
     * 最好在Activity的onWindowFocusChanged ()方法或者之后调运,因为只有这时候才是真正的显示OK
     */
    private void appLayout() {

        Log.d("shj--", "appLayout width " + CoordinateUtils.getAppLayoutWH(this).width() + " height " + CoordinateUtils.getAppLayoutWH(this).height());
    }

    /**
     * 0??? 不能在onCreate中調用
     * 最好在Activity的onWindowFocusChanged ()方法或者之后调运,因为只有这时候才是真正的显示OK
     */
    private void statusbar() {

        Log.d("shj--", "statusBarHeight " + CoordinateUtils.getStatusH(this));
    }

    /**
     * 跟screen一样 不能在onCreate中調用
     * 最好在Activity的onWindowFocusChanged ()方法或者之后调运,因为只有这时候才是真正的显示OK
     */
    private void app() {

        Log.d("shj--", "app width " + CoordinateUtils.getAppLayoutWH(this).width() + " height " + CoordinateUtils.getAppLayoutWH(this).height());
    }

    /**
     * 可以
     */
    private void screen() {
        Log.d("shj--", "screen widthPixels " + CoordinateUtils.getScreenWH(this).widthPixels + " heightPixels " + CoordinateUtils.getScreenWH(this).heightPixels);
    }

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        screen();
        app();
        statusbar();
        appLayout();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值