1

私は Android 2.2 アプリケーションを開発しています。

Eclipse グラフィカル レイアウトでレイアウトをテストする 問題があります。Galaxy Nexus では見栄えがよくありません。

ldpi、mdpi、hdpi、xhdpi の 4 つのイメージ タイプがあります。レイアウトと 4 つの dimens.xml ファイル (ldpi、mdpi、hdpi、xhdpi)。

dimens.xml を変更して見栄えを良くしてGalaxy Nexusも、他のデバイスNexus One(Eclipse のグラフィカル レイアウトなど) では見栄えがよくありません。だから、私は何か他のものが必要だと思います。

複数の画面のサポートを読む別のアプローチがあることがわかりました。通常のレイアウト、大きいレイアウトなどを使用する代わりに、 を使用できますsw<N>dp。しかし、これは Android 3.2 から始まっており、Android 2.2 をサポートする必要があります。

Galaxy Nexus で見栄えを良くするには、何を追加する必要がありますか?

ネクサス ワン:
ここに画像の説明を入力



ギャラクシー ネクサス:

ここに画像の説明を入力

4

3 に答える 3

2

もう 1 つのアプローチは、Web 開発者のように考えるためによく使用します。レイアウトがどの方向にも引き伸ばされて、レイアウトが見栄えがするようにしてください。重要な部分を中央に配置し、背後の画像が両方向に引き伸ばされるようにします。次に、背景に imageview を使用し、それを match_parent に、scaletype を centerCrop に設定します。すべてでうまくいくわけではありませんが、あなたのサンプルでうまくいくと確信しています。

あなたの場合、現在持っているものすべてを別のコンテナー (RelativeLayout など) 内に配置してから、それを中央に配置して寸法を設定するか、wrap_content にすることができます。新しいトップ コンテナは match_parent で、私が子供の頃に話した imageview を持つ必要があります。

于 2012-08-02T14:25:51.477 に答える
1

画面サイズを使用するレイアウトなど、画像の異なる密度を維持する必要があります。

layout-hdpi の代わりに layout-large

編集

次のようなフォルダ レイアウトが必要です。

  • res/drawable-ldpi/[画像リソース]
  • res/drawable-mdpi/[画像リソース]
  • res/drawable-hdpi/[画像リソース]
  • res/drawable-xhdpi/[画像リソース]
  • res/layout/[レイアウト xml ファイル]
  • res/layout-large/[大画面用に変更されたレイアウト xml ファイル]
  • res/layout-small/]小さな画面用に変更されたレイアウト xml ファイル]

詳細については、このリンクを参照してください: http://developer.android.com/training/basics/supporting-devices/screens.html

EDIT2

1 つのレイアウトに固執する必要がある場合は、res/values-large/dimes.xml の値を編集して、大画面デバイスに影響を与える必要があります。

デバイス画面が非常に大きい場合は、画面サイズごとに res/values-xlarge/dimens.xml などを編集する必要があります。

于 2012-08-02T14:12:03.793 に答える
0

私の最初の質問の 1 つは、これと非常によく似ていました。

つまり、背景に表示する画像に応じてビューを配置およびサイズ変更する必要があるという問題があります。悲しいことに、Android はいくつかの回避策なしではサポートしていません。

silverlight&WPF には、それを自動的に行う viewBox があります。ベクターベースなので、フラッシュにはそれがあります。すべての画面の縦横比が同じであるため、iPhone にはそれがあります。しかし、Androidにはまだ解決策がありません。

私は google developers day でも同じ質問をしましたが、講師が私に言ったことは、私のアプリは非常に単純でしたが、 openGL を使うべきだということでした。

今のところ、できることは次のとおりです。

  1. 簡単な方法: 複数の LinearLayout を重み付きで使用します。位置とサイズに関するルールを作成するために、それらの内部のビューにも重みを付けて使用します。Lint はパフォーマンスが悪いことを通知しますが、ビューがまったく移動/サイズ変更されていない場合は問題ありません。

  2. 高度な方法: 独自の layout を作成します。これは、指定したものに関連してビューを配置する場所 (およびサイズ) を正確に認識します。過去にやったことがありますが、ボタンの代わりにimageViewsを使用しました(必要だったため)。

このアプローチにはバグもあります (解決策 1 にもあります)。一部の画面では、画像が背景画像に収まりませんでした。それがあなたの場合でない場合は、あなたもそれを行うことができます。

  1. 筋金入りの方法: openGl を使用します。andEngine や LibGdx などのサードパーティ ライブラリを使用する方が簡単です。

  2. Web 開発者の方法: すべてを Web サイトに配置し、表示し、android とのインターフェイスを使用してタッチを処理します。

  3. ボタンを使用しない方法: ボタンを使用したくない場合は、簡単な計算を使用して、ユーザーがどこを押したかを知ることができます。上記の解決策は使用しません。

ところで、私が見ているように画像を引き伸ばすと、アスペクト比が維持されません。あなたもそれを処理する必要があります。openGl を使用すると、その問題を解決できます。

于 2012-08-02T19:27:10.957 に答える