2013-03-19 5 views
6

最初のことは、多くの人が同じことを尋ねてきたことを知っていますが、これはほぼ同じですが、私はもう少し質問があります。ImageView、なぜサイズが違うのですか?

私は48px X 48pxのイメージを持っているので、私は

layout_width="wrap_content" 
layout_height="wrap_content" 

とImageViewの中で、この画像を設定した場合、そのイメージは大きく見えるが、私は使用している場合、固定サイズ以下の、それは小さい

layout_width="48dp" 
layout_height="48dp" 
を取得

48dpで正しく表示されていると思いますが、なぜwrap_contentを使うとそれが大きくなったのですか?そして、wrap_contentの画像サイズが正しい場合、dpを使用するポイントは何ですか(画像を小さくする場合)?

+0

あなたはImageViewのにイメージを設定する方法? – Triode

+2

'dp'は途中で' px'と同じではありません –

+0

伸びている理由かもしれない画像ソースとして背景を設定しているかもしれません – Triode

答えて

1

この

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

を試してみて、まだそれはあなたのイメージ必見はその周りにアルファが含まれ、その後小さな示しています。

3

これはおそらく、scaleTypeを明示的に設定していないために発生します。次のようにXMLであなたのscaleTypeを設定して、あなたは問題ないはずです。

android:scaleType="center" 
+0

はい、scaleTypeが必要です。 scaleType = "fitXY"を使用しました。 ありがとう – xmen

+0

私の答えがあなたを助けてくれたなら、それの隣にある空のチェックマークを使用して、それを合格とマークしてください。 – Shade

+0

私は投票しました:) – xmen

6

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

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

0

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

android:scaleType="center"