4

アプリケーションを開発している間、これは私がしたことです:1.ベース解像度として320 * 480を維持し、ベース密度として160dpiを維持しました。2.すべての画像をdrawable-mdpiフォルダーに保持します。3。xmlレイアウトで画像の幅と高さを指定するときにdpを使用しました。

私が見つけたのは、開発者のサイトで言及されているように、dpを使用すると、画面に応じて自動的にスケールアップおよびスケールダウンしますが、目的の結果が得られず、小さいデバイスでは画像が適切にスケールされませんでした。

だから私がしたことは1.xmlファイルでレイアウトを作成しました2.実行時に画像の幅と高さを画面の幅と高さのパーセントで設定しましたそしてこれを行うことで私は望ましい結果を得ました。画像はすべてで適切にスケーリングされました小さな240*320からタブ600*1024までの範囲のデバイス。

だから私の質問は、開発者サイトで述べたように、幅と高さを指定するためにdpを使用する必要がありますか、それともプログラムで行う必要があります.dpの概念は何ですか?どこで使用できますか?

4

1 に答える 1

2

まず、「dp」の使い方はいいと思います。それで問題ありません。

次に、あなたが言及した問題に対処するための最良の方法は、適切なサイズの画像をldpi、hdpi、およびxhdpiフォルダーに配置することです。そうすれば、レイアウトを動的に調整する必要はありません。

LDPI:MDPI:HDPI:XHDPI = 3:4:6:8の画像サイズの比率

またはこれは、デバイスのサイズを動的に予測し、それに応じてレイアウトを設定する方法です。

    DisplayMetrics displayMetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
    switch(displayMetrics.densityDpi){ 
        case DisplayMetrics.DENSITY_LOW: 
            //your layout for samll sized devices
            break; 
        case DisplayMetrics.DENSITY_MEDIUM: 
            //your layout for medium sized devices
            break; 
        case DisplayMetrics.DENSITY_HIGH: 
            //your layout for large sized devices
            break; 
    } 
于 2012-06-23T07:50:29.537 に答える