Android的分辨率,屏幕尺寸实在太多了,如何能够自适应各种尺寸呢?
看看下面的代码,也许能解决大部分的问题。

  1. WindowManager windowManager = getWindowManager();    
  2. Display display = windowManager.getDefaultDisplay();   
  3. Log.i(display.getWidth()+"",display.getHeight()+"");  
  4.  
  5. double wid = display.getWidth();  
  6. double height = display.getHeight();  
  7. double scalesize_width = wid/800.0 ;  
  8. double scalesize_height = height/1280.0 ; 

首先按照1280*800的尺寸来作为参照,把其他不同的尺寸按照这个不同比例的缩放。然后用Relativelayout的布局方法

  1. final Button info = (Button)findViewById(R.id.info);  
  2.  
  3. //set info button scale(50 * 50)  
  4. RelativeLayout.LayoutParams layoutParams_info = new RelativeLayout.LayoutParams((int) (50*scalesize_width), (int) (50*scalesize_height)); 

这个就是设置的参数了,在1280*800的屏幕上输出一个50*50的button。定义在右上角,一个info的标记。然后为这个button添加规则。
layoutParams_info.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
layoutParams_info.setMargins(0, (int)(30*scalesize_width), (int)(30*scalesize_width), 0);   //set margins(left,top,right,bottom)
info.setLayoutParams(layoutParams_info);
当然还有addRule(RelativeLayout.ABOVE, R.id.info);这样的规则。