0

私は、Androidが同じアプリケーションの異なる画面にUI要素を再配置する方法を見つけようとしています。私はAndroid2.2の音楽プレーヤーでいくつかのテストを行ってきました:( 出典:simplehelp.netAndroid2.2音楽プレーヤー

さまざまな画面サイズでのMediaPlaybackActivityの最初の画像ボタンの位置(左上隅)は次のとおりです。画面1(解像度:480x800、密度:240dpi):ピクセル単位の座標:345、109画面2(解像度:240x400、密度: 120dpi):ピクセル単位の座標:173、53画面3(解像度:320x480、密度:160dpi):ピクセル単位の座標:230、46

私の質問は、どの画面でもUI要素(この場合はボタン)の座標が与えられた場合、他の2つの画面でその要素の座標を予測することは可能ですか?pxからdpに変換してから、pxに戻そうとしましたが、機能しません(近いですが)。これが私が試したものです。

画面2のインデックス0の画像ボタンの位置(ピクセル):173、53画面2のインデックス0の画像ボタンの位置(dp:230.66、70.66()(この式を使用:px = dp *(dpi / 160)私はここで見つけました)ピクセルの画面1のインデックス0の画像ボタンの位置:346、106

ここは非常に近いことがわかりますが、これと同じ式を使用してピクセルを画面1から画面3に変換すると、230、72.66が得られるため、y軸の差が非常に大きいことがわかります。上のバーがy軸に影響を与えると思いますが、なぜそのような違いがあるのか​​わかりません。

私はここで何か間違ったことをしていますか?UI要素の新しい場所とサイズを予測する方法はありますか?Androidはどのようにビューを再配置しますか?

前もって感謝します。

4

1 に答える 1

0

なぜ計算が失敗したのかはわかっていると思います。簡単なアプリを作成し、Androidに自動的にスケーリングを行わせてから、数式を適用すると機能しました。ですから、私が使っていたアプリケーション(音楽プレーヤー)は、見た目はまったく同じでも、画面によって表示が異なるようにカスタマイズされているのではないかと思います。また、開発者は画面ごとに異なるレイアウトを使用できるため、問題は思ったほど単純ではないと思います。@aprianに感謝します。あなたのコメントは、何が問題なのかを見つけるのに役立ちました。

于 2012-09-05T03:23:27.450 に答える