3

私は最初の Android アプリケーションを作成していますが、これに気が狂いそうになっています。

私のアプリケーションは Android スマートフォン用で、レイアウトに必要な特定のデザインは 1 つだけです。デバイスごとにレイアウトのデザインを変更する必要はありません。やりたいことは、さまざまな画面サイズと解像度をすべてサポートするようにレイアウトのサイズを変更することだけです。私は複数のことを試しましたが、正しく取得できないようです。

例: ページにいくつかのボタンがあり、背景として使用している画像の特定の位置にボタンを配置する必要があります。これらのボタンは、デバイスの画面サイズが大きくなったり、画面の解像度が高くなったりした場合でも、画像の同じ位置に配置する必要があります。

私のアプリケーションに関する情報:

-すべてのボタンの場所は DIP です (私が試した解決策の 1 つではこれを実行しました) -私のレイアウト XML ファイルは "layout" という名前のフォルダーにあります

どんな助けでも大歓迎です

私のレイアウトの1つのコードは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/mybackground"

>
<Button  
android:layout_width="115dip" 
android:layout_marginTop="450dip" 
android:layout_marginLeft="105dip" 
android:layout_height="50dip" 
android:id="@+id/button01"

>
</Button>

<Button  
android:layout_width="70dip" 
android:layout_marginTop="460dip" 
android:layout_marginLeft="250dip" 
android:layout_height="40dip" 
android:id="@+id/button03"

>
</Button>




</RelativeLayout>

上記のコードは、私のレイアウトの 1 つです。このレイアウトには、背景「mybackground」に対して同じ場所に配置する必要がある 2 つのボタンがあります。これらのボタンには透明属性が適用されているため、画像上の要素は「ボタン」です​​。これは私の Droid2 では機能しますが、より大きな画面や高密度の画面に適用すると、ボタンが画像に対して正しい位置に配置されなくなります。

4

3 に答える 3

2

Rollin_s の質問に対する adamp のコメントは次のとおりです。背景の特定の場所にボタンを配置する必要がある理由は何ですか? そのスポットが (たとえば) 配置する必要がある別の画像である場合は、その画像を独自の ImageView にして、ボタンを RelativeLayout パラメーターで配置します。スクリーンショットを含めれば、誰かが何をすべきかのより良い例を提供できるかもしれません. また、GridView と TableLayout は、さまざまな画面サイズに合わせてレイアウト コンポーネントを配置するのに適したオブジェクトです。

于 2011-04-08T00:41:12.013 に答える
0

少しファンキーに聞こえますが、作業する必要があるのは同等の iPhone UI のフラット化されたイメージであり、追加する必要がある UI 要素がその上にあるボタンだけである場合は、面倒な作業に代わる次の方法を試してみたくなるかもしれません。透明なボタンを揃えようとするのは:

  • ボタンの位置が通常の/スケーリングされていない画像に対してどこにあるかを決定し、選択したデータ構造に上、左、下、右の値を記録します
  • FitXY を使用して拡大縮小するように設定された ImageView に画像を配置します
  • ImageViews H & W を調べ、ネイティブ イメージの H & W と比較することで、Android がイメージに適用したスケーリングを計算します。
  • 元の値から上、左、下、および右の値をスケーリングするためにいくつかの計算を行います
  • 次に、画像ビューの onClick ハンドラーで、タッチされた座標が現在取得しているスケーリングされた境界内にあるかどうかをテストできるはずです。

おそらく、レイアウトをいじるよりも正確で、維持しやすく、手間がかからないでしょう。

もちろん、より正しい解決策は、iPhone アプリを実行するために使用される実際の個々のグラフィック要素を取得し、適切な Android で UI を再実装することです。

幸運を。

于 2011-04-08T23:41:47.603 に答える