安卓Activity的高度和宽度

 DisplayMetrics metrics = new DisplayMetrics();
 Rect outRect = new Rect();
 Timer timer = new Timer();
 Display display;
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.main);
        mainLayout = (AbsoluteLayout)this.findViewById(R.id.main_layout);
        this.getWindowManager().getDefaultDisplay().getMetrics(metrics);
        Log.i("smart_home", "metrics::density=" + metrics.density
        		+", densityDpi="+metrics.densityDpi
        		+", heightPixels="+metrics.heightPixels
        		+", widthPixels="+metrics.widthPixels
        		+", scaledDensity="+metrics.scaledDensity
        		+", xdpi="+metrics.xdpi
        		+", ydpi="+metrics.ydpi);
        timer.schedule(new PrintTask(), 100, 100);
    }
    Handler handler = new Handler(){
  @Override
  public void handleMessage(Message msg)
  {
   super.handleMessage(msg);
   addTitle();
   addNavigation();
   addContent();
  }
    };
    class PrintTask extends TimerTask
    {
  @Override
  public void run()
  {
   mainLayout.getWindowVisibleDisplayFrame(outRect);
   Log.i("smart_home", "outRect::top=" + outRect.top 
     + ", bottom=" + outRect.bottom 
     + ", left=" + outRect.left 
     + ", right=" + outRect.right 
     + ", width=" + outRect.width() 
     + ", height=" + outRect.height());
   activityWidth = outRect.width();
   activityHeight = outRect.height();
   display = getWindowManager().getDefaultDisplay();
   Log.i("smart_home", "display::width="+display.getWidth()+", height="+display.getHeight());
   if(activityHeight != 0)
   {
    handler.sendEmptyMessage(0);
    timer.cancel();
   }
  }
    }

结果--SONY手机

10-17 22:43:29.194: INFO/smart_home(5028): metrics::density=1.5, densityDpi=240, heightPixels=569, widthPixels=320, scaledDensity=1.5, xdpi=239.05882, ydpi=243.72585
10-17 22:43:29.344: INFO/smart_home(5028): outRect::top=25, bottom=854, left=0, right=480, width=480, height=829
10-17 22:43:29.344: INFO/smart_home(5028): display::width=320, height=569

结果--LG手机

10-17 23:04:52.965: INFO/smart_home(3829): metrics::density=1.0, densityDpi=160, heightPixels=480, widthPixels=320, scaledDensity=1.0, xdpi=159.37254, ydpi=160.42105
10-17 23:04:53.075: INFO/smart_home(3829): outRect::top=25, bottom=480, left=0, right=320, width=320, height=455
10-17 23:04:53.075: INFO/smart_home(3829): display::width=320, height=480

在AndroidManifest.xml文件中添加元素support-screens

运行程序打印出log日志

10-20 22:23:10.875: INFO/smart_home(9560): metrics::density=1.5, densityDpi=240, heightPixels=854, widthPixels=480, scaledDensity=1.5, xdpi=239.05882, ydpi=243.72585
10-20 22:23:10.985: INFO/smart_home(9560): outRect::top=38, bottom=854, left=0, right=480, width=480, height=816
10-20 22:23:10.985: INFO/smart_home(9560): display::width=480, height=854

猜你喜欢

转载自1351017747.iteye.com/blog/1700601
今日推荐