0

Android アプリの開発で複数の画面をサポートすることに問題があります。

最初に、ファイル activity_main.xml を使用してレイアウト デザインを作成しました。私はAbsoluteLayoutを使用したことがなく、LinearLayoutのみを使用しました。さらに、fill_parent、match_parent、wrap_content、および dp を使用したいくつかのレイアウト。(おそらく、dpを使用することが問題ですか?)

次に、フォルダーを作成し、各フォルダーに activity_main.xml ファイルをコピーしました。

res/layout/activity_main.xml

res/layout-small/activity_main.xml

res/layout-large/activity_main.xml

res/layout-xlarge/activity_main.xml

res/layout-xlarge-land/activity_main.xml

最後に、これらのコードをマニフェスト ファイルに追加しました。

<compatible-screens>
        <screen android:screenSize="small" android:screenDensity="ldpi" />
        <screen android:screenSize="small" android:screenDensity="mdpi" />
        <screen android:screenSize="small" android:screenDensity="hdpi" />
        <screen android:screenSize="small" android:screenDensity="xhdpi" />

        <screen android:screenSize="normal" android:screenDensity="ldpi" />
        <screen android:screenSize="normal" android:screenDensity="mdpi" />
        <screen android:screenSize="normal" android:screenDensity="hdpi" />
        <screen android:screenSize="normal" android:screenDensity="xhdpi" />

        <screen android:screenSize="large" android:screenDensity="ldpi" />
        <screen android:screenSize="large" android:screenDensity="mdpi" />
        <screen android:screenSize="large" android:screenDensity="hdpi" />
        <screen android:screenSize="large" android:screenDensity="xhdpi" />

        <screen android:screenSize="xlarge" android:screenDensity="ldpi" />
        <screen android:screenSize="xlarge" android:screenDensity="mdpi" />
        <screen android:screenSize="xlarge" android:screenDensity="hdpi" />
        <screen android:screenSize="xlarge" android:screenDensity="xhdpi" />
    </compatible-screens>

韓国で購入した Samsung Galaxy Note でテストしましたが、レイアウトが画面全体に収まりません。

誰でもこの問題を解決する方法を教えてもらえますか?

4

1 に答える 1

2

あなたはここでやりすぎです !

レイアウトが毎回まったく同じになる場合は、別のフォルダーにレイアウトを複製する必要はありません。

最初からやり直してください。マニフェストの compatible-screens セクション全体を削除します。

修飾子のない 1 つのレイアウトから始めて、特定の問題 (初期レイアウトを微調整しても解決できない) を解決しようとしている場合にのみ、新しいレイアウトを作成します。

このレイアウトは、古い Galaxy Note 1 という 1 台の携帯電話でのみテストしたようで、複数の携帯電話でまだテストしていません。原則として、複数の画面で動作させる前に、1 つの画面で動作させるようにしてください。

wrap_content や fill_parent などの相対値の代わりに dps を使用しても問題ありません。幅と高さで使用する前に、パディング、マージン、および minHeight/minWidth で dps を使用してみてください。そして、重力、重み、または RelativeLayout を使用して、dps であまりにも多くの属性をハードコーディングするのを最小限に抑えます。

また、ストレート PNG の代わりに 9 パッチ (.9.PNG) を使用してみてください。

最終的には、すべての画面をプレビューするレイアウト デザイナーの機能を使用する方法を学習する必要があります (Android Studio の機能ですが、Eclipse にも同じ機能があります)。

また、レイアウトでタブレットと携帯電話の両方をサポートしたい場合は、間違いなくフラグメントを使用してみてください。

于 2014-05-10T05:36:27.303 に答える