ImageView imageview = (ImageView) this.findViewById(R.id.imageview_welcome);
double d1 = 640.00/1136.00;
double d2 = (double)screenWidth/(double)screenHeight;
if(d1>d2){
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) imageview.getLayoutParams();
params.height = screenHeight;
params.width = (int) (640.00*((double)screenHeight/1136.00));
int m = (int)((double)((double)640.00*((double)screenHeight/1136.00))-screenWidth)/2;
params.leftMargin = -m;
params.rightMargin = -m;
imageview.setLayoutParams(params);
}else if(d2>d1){
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) imageview.getLayoutParams();
params.width = screenWidth;
params.height = (int) ((double)1136.00*((double)screenWidth/640.00));
int m = (int)((double)((double)1136.00*((double)screenWidth/640.00))-screenHeight)/2;
params.topMargin = -m;
params.bottomMargin = -m;
imageview.setLayoutParams(params);
}
若 d1>d2 说明运行设备 高度 大于图片的 高度(也就是说图片相对于屏幕太宽)
故图片要以屏幕的 高度 为基准,并以自己的比例求出自己相对于屏幕的宽度
若 d2>d1 说明运行设备 宽度 大于图片的 宽度(也就是说图片相对于屏幕太高)
故图片要以屏幕的 宽度 为基准,并以自己的比例求出自己相对于屏幕的高度
并把计算出的宽高重新作为布局参数设置给图片
如果不这样计算可能会造成OOM!