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);

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

你可能感兴趣的:(Android 根据图片宽高比例设置控件宽高)