Android的分辨率,屏幕尺寸实在太多了,如何能够自适应各种尺寸呢?
看看下面的代码,也许能解决大部分的问题。
- WindowManager windowManager = getWindowManager();
- Display display = windowManager.getDefaultDisplay();
- Log.i(display.getWidth()+"",display.getHeight()+"");
- double wid = display.getWidth();
- double height = display.getHeight();
- double scalesize_width = wid/800.0 ;
- double scalesize_height = height/1280.0 ;
首先按照1280*800的尺寸来作为参照,把其他不同的尺寸按照这个不同比例的缩放。然后用Relativelayout的布局方法
- final Button info = (Button)findViewById(R.id.info);
- //set info button scale(50 * 50)
- 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);这样的规则。