6

まず、多くの人が同じことを質問していることは知っていますが、これはほぼ同じですが、もう少し質問があります。

私は48pxx48pxの画像を持っているので、この画像をImageViewで設定すると

layout_width="wrap_content"
layout_height="wrap_content"

すると画像は大きく見えますが、以下の固定サイズを使用すると小さくなります

layout_width="48dp"
layout_height="48dp"

48dpで正しく表示されていると思いますが(ピクセル化されていませんか?)、wrap_contentを使用するとなぜ大きくなったのですか?そして、wrap_contentによる画像サイズが正しい場合、dpを使用する意味は何ですか(画像を小さくする場合)?

4

4 に答える 4

6

48dp(または48dip) は「密度非依存ピクセル」の略です。これは、Android の画面に表示される画像の物理的なサイズは、画面の密度とサイズに関係なく同じであることを意味します。これをサポートするために、Android は画面密度に基づいて表示される実際のピクセル サイズを調整します。さまざまなサイズの検出結果は、デバイスごとに異なります。

dp 単位からスクリーン ピクセルへの変換は次のとおりpixels = dps * (density / 160)です。たとえば、240 dpi の画面で1dpは、1.5 物理ピクセルに相当します。さまざまな画面で UI を適切に表示する方法として、dp 単位を使用してアプリケーションの UI を定義することを強くお勧めします。

于 2013-03-19T14:08:15.873 に答える
3

これは、scaleTypeを明示的に設定していないために発生する可能性があります。次のようにXMLでscaleTypeを設定すると、問題がないはずです。

android:scaleType="center"
于 2013-03-19T14:04:28.530 に答える
1

これを試して

<ImageView
    android:id="@+id/seprator2"
    layout_width="48dp"
    layout_height="48dp"
    android:scaleType="fitXY"
    android:src="@drawable/your_image" />

それでも小さい場合は、画像の周囲にアルファが含まれている必要があります。

于 2013-03-19T14:05:38.290 に答える
0

画像がビューよりも大きい場合は、次を使用して拡大縮小できます。

android:scaleType="center"
于 2013-03-19T14:09:45.873 に答える