0

私は Android 開発の初心者であり、さまざまなレイアウトでサイズ変更がどのように機能するかを完全には理解できません。本のプレビューをこのテンプレートに配置したい:

book_template

FrameLayoutを使用して実装しようとしました。アイデアは、プレビュー画像の中心がpng背景の中心とまったく同じになるということです。コードは次のとおりです。

<FrameLayout
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_weight=".5" >

  <ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/book_frame" />
  <ImageView
    android:id="@+id/previewImage"
    android:layout_width="83dp"
    android:layout_height="83dp"
    android:layout_gravity="center_vertical|center_horizontal"
    android:src="@drawable/abs__ab_bottom_solid_dark_holo" />
</FrameLayout>

レイアウトビルダーの結果は、私が望んでいるように見えます:

emulator_result

実際の電話では異なります。

電話結果

他の解像度では、両方のバリアントとも異なると思います。だから私の質問は、これらの画像を同期して、サイズ変更や歪みの後にプレビューがカバーに正しく収まるようにする方法です? 考えられる解決策は、画像から境界線を削除し、代わりに previewImage に配置することです。しかし、アプリケーションには境界線を削除できない同様のユースケースがいくつかあるので、それらすべてに対する普遍的な解決策を見つけたいと思います.

4

2 に答える 2

0

あなたの質問に答えがあります。

あなたのケースで何が起こっているかは、異なる画面解像度にとって重要です。

ハードコーディングされたものは、 android:layout_width="83dp" android:layout_height="83dp"このコードの場合、常に奇妙な結果をもたらします。

このリンクを確認すると、さまざまな画面のドローアブルを管理することができます。

ここに別のリンクがあります

于 2013-07-11T15:23:13.423 に答える