2

画面サイズに基づいて画像の高さと幅を計算しようとしています。ピクセルを72倍して変換するために、バックエンドから5'x 7'次元の画像を取得しています。360 X 504次元の画像があります。360 X 504 の場合、動的な透明な長方形の領域は (1.223') x (1.179')、つまり 88.05 x 84.88 に表示されます。画面サイズが 320 x 480 の場合、動的な長方形領域の高さと幅を計算したいと思います。このために、次の計算を使用します。

高さ:

新しい高さ = (84.88/504)*480 = 80.83

84.88 - 長方形の画像の高さ、504 - 画面サイズの高さ、480 - 新しい画面サイズの高さ。

Width についても同じ方法:

新しい幅= (88.05/360)*320 = 78.26

これは、画面サイズが増減したときに画像サイズを計算する方法ですか? メイン背景画像の長方形領域 (茶色がかった領域) の上に動的画像を正確に配置する必要があります。

要するに、360X504の画像x、y位置と高さ、幅を取得します..今、320x480のx、yと高さ、幅を計算する必要があります

ここに画像の説明を入力

4

2 に答える 2

2

/drawables/ldpi 内で事前に構成してみませんか?

そうすれば、必要な場所でボタンを膨らませると、それが自動的に行われます。

以下を使用することもできます。

API3+

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

API1+ (ただし、新しい API では廃止されました)

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight(); 

表示サイズを取得するには、表示情報がわかったので、インフレートする /drawable 要素を名前 ( small.jpg 、 small.jpg ) で選択し、奇妙な画面サイズを処理する小さな case/switch ステートメントを使用できます。そのクラスの画面内。これにより、常に機能し、正しく自動サイズ調整されます。

システムはすでに dpi とスクリーン クラス (「ラージ」、「特大」など) を認識しているため、システムが面倒な作業を行ってくれます。

于 2012-11-11T05:19:15.920 に答える
1

レイアウト内の位置を事前に定義できる場合は、おそらく構成ごとに異なるレイアウトを作成できます

  • ldpi
  • mdpi

scaleTypeのプロパティを設定しますImageView

後でサーバーから画像を取得するたびに、それをビューに設定するだけで、デバイスの dpi を含むスケーリングが自動的に管理されます。

于 2012-11-11T05:51:56.367 に答える