3

私は現在、ドキュメントを理解する上で問題となる可能性のあるものに行き詰まっています。

複数の画面のサポートに関するドキュメントを読んでいますが、特にHTC DesireHTC Legendのレイアウトの違いに問題があります。

私の理解では、開発者ドキュメントの画面マトリックスを見ると、Legend は「通常の」画面であり、Desire は大画面です。

レイアウトディレクトリlayout /、layout-small /、およびlayout-largeを追加すると、小さな画面のデバイスに関する問題が解決しました。しかし今、デザイアとレジェンドの両方でアプリの見栄えを良くしようとすると、どちらも通常の画面レイアウトを使用しているように見えます。

ヒント、解決策、または説明はありますか?

4

3 に答える 3

2

HTC Desire(画面が480x800 WVGA800)は通常のscreen-hdpiと見なされ、HTC Legend(画面が320 X 480 HVGA)は通常のscreen-mdpiと見なされます(表1を参照)。したがって、通常の画面レイアウトとmdpiグラフィックが両方のデバイスに使用されますが、Desireにはhdpi画面があるため、Androidはグラフィックを拡大します(通常、結果としてぼやけて見えます)。レイアウトをDesireで見栄えよくするために、hdpiグラフィックを提供し、drawable-hdpiという名前のフォルダーに配置する必要があります。

于 2011-03-15T11:24:48.900 に答える
0

通常のレイアウトでは、wrap_content、fill_parent、または dp 単位を使用してみてください。とにかく、あなたがやっているようにいくつかのレイアウトを作成するのは面倒ですが、おそらくより良いオプションです. これをマニフェストに設定します

  <supports-screens 
    android:largeScreens="true" 
    android:smallScreens="true" 
    android:normalScreens="true" 
 />

使用中の画面のサイズを取得します

DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
height = displaymetrics.heightPixels;
width = displaymetrics.widthPixels;
Log.e("FirstImage", "Width = "+width+"Height = "+height);

画面のサイズがわかったら、特定の事前定義された (自分で) レイアウトを割り当てる方法を知っていると思います。

これがお役に立てば幸いです。まだ問題がある場合は、以下にコメントしてください。解決方法を確認します。

于 2011-03-15T11:26:19.837 に答える
0

レイアウトでは、レイアウト ウェイトを使用して寸法を指定します。これは、さまざまな画面デバイスでアプリを実行するときに大いに役立ちます。

ここでlayout_weightsについて確認してください、
http: //mobiforge.com/designing/story/understanding-user-interface-android-part-1-layouts

于 2011-03-15T11:21:20.927 に答える