Android屏幕尺寸、标题栏高度、状态栏高度、当前View尺寸

21 篇文章 0 订阅
class TestThread extends Thread{
    	Context con;
    	TestThread(Context co){
    		con=co;
    	}
    	public void run(){
    		try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			 //屏幕尺寸,全屏屏幕尺寸宽、高
	        DisplayMetrics dm = new DisplayMetrics();
	        ((Activity) con).getWindowManager().getDefaultDisplay().getMetrics(dm);
	        int dis_w = dm.widthPixels;
	        int dis_h = dm.heightPixels;
	        System.out.println("dis_w="+String.valueOf(dis_w));
	        System.out.println("dis_h="+String.valueOf(dis_h));
	        
	        //状态栏高度,注意,一下语句放在程序开始运行,得到结果为0
	        //可能原因是显示内容还没有达到稳定状态,所以这些值还没被确认
	        //个人解决方法是放入线程中,待第一个View显示后,调用线程,并延时1s再获取此尺寸
	        Rect frame = new Rect();  
	        getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);  
	        int statusBarHeight = frame.top;  
	        System.out.println("statusBarHeight="+String.valueOf(statusBarHeight));
	        
	        //标题栏+状态栏的值,同上需要延时
	        int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();  
	        System.out.println("contentTop="+String.valueOf(contentTop));
	        int titleBarHeight = contentTop - statusBarHeight ;
	        System.out.println("titleBarHeight="+String.valueOf(titleBarHeight));
	        //下面的ll是一个我定义过的LinearLayout,并在当前满屏显示(仅填充,非全屏)
	        //获取的尺寸为当前view显示的尺寸,同样需要延时获取
	        System.out.println("view_w"+String.valueOf(ll.getWidth()));
	        System.out.println("view_g"+String.valueOf(ll.getHeight()));
    	}
    	
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值