Android 设置图片的布局

这篇博客讲述了如何在Android中根据屏幕尺寸动态调整ImageView的布局,避免图片导致的OOM问题。通过比较图片原始宽高比与屏幕宽高比,确定以高度或宽度为基准,保持比例设置图片的布局参数。
摘要由CSDN通过智能技术生成
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!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值