Androidは画像幅の高さに応じてコントロール幅の高さを設定します

1070 ワード

この方法は1つのインタフェースの少量のピクチャに適用される.
主な計算式は、現在のコントロールで最大の表示幅(高さ)を得ることです.一般的に画面を塗りつぶすと、画面の幅を直接取ります.得られた幅を画像幅で割って高さで割っても、直接画像幅の高い割合を得ることができる.次の式のように、intを直接使うと計算が不正確になることがあります.幅の高さの後にfを加えてfoltタイプになってx/(width/height)を処理する必要があります.もう一つは、ここで私は小数点以下の5桁を保持するのが一般的です.ここで得られるのは比例で、データ型にこだわらないでください.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);

図は置かないで、自分で試してみれば分かります.上のも記録に相当して、時間が長くなって、忘れるのも怖いです.ネットで探しても、直接レイアウトに属性を設定するなど、効果がありません.