android 控件高度和图片一样高,Android 根据图片宽高比例设置控件宽高

这个方式适用于一个界面少量图片。

主要的计算公式就是得到当前控件最大的显示宽度(高度),一般填充屏幕的话,就直接取屏幕的宽度了。

得到宽度除以图片宽除以高,也可以直接得到图片宽高的比例。如下公式

这种的话,有时候直接用int 会计算不准确,宽高后面需要加f变成folt类型来处理

x/(width/height)

还有一种就是

这里我一般是保留小数点后面五位,这里得到的是比例,就不要纠结数据类型了。

ratio = wdith/height

x/ratio

DisplayMetrics dm = getActivity().getResources().getDisplayMetrics();

// 这里是因为控件有边距,需要处理,没有的可以不用管这里

int marWidth = DisplayUtil.dip2px(getContext(),16);

// int mHeight = (int) ((dm.widthPixels-marWidth*2)/(340f/110f));

int mHeight = (int) ((dm.widthPixels-marWidth*2)/3.09091);

// 如果有时候宽度需要计算,也是类似于上面的公式了,就自己试了,毕竟设置宽度的需求较少。

// int mWidth = dm.widthPixels;

ViewGroup.LayoutParams params = imageView.getLayoutParams();

// params.width = mWidth;

params.height = mHeight;

imageView.setLayoutParams(params);

图就不放了,自己试验下就知道了。

上面的也相当于记录下,时间久了,也怕忘了。去网上找的也都是直接布局里设置属性什么的,达不到效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值