この設定wrap_content
は、コンテンツに必要なサイズに合わせてサイズを変更するようにビューに指示します。テストの場合、画像は 1080x1920 で、デバイスの画面解像度もおそらく 1080x1920 であるため、完璧に適合します。幅と高さを に設定したためwrap_content
、Android は提供されたコンテンツの量を正しく表示するために必要なだけの画面スペースを使用しようとします。この場合、使用可能な画面スペースはコンテンツのサイズと一致するため、ぴったりと収まります。
しかし、デバイスの画面が 1080x1920 でない場合はどうなるでしょうか。その場合、Android はできるだけ多くのスペースのみを使用しますが、使用可能な画面スペースの境界内に画像を収めようとします。言い換えれば、システムはイメージを適切に縮小して、提供されたコンテナーに入れます。ただし、縦横比が画像と同じでない場合、これはぎこちないフィット感につながる可能性があります. たとえば、次のスクリーンショットを参照してください。

この画像は 1920x1080 ですが、ぴったり収まらないことに注意してください。これは、この nexus 7 の画面を横向きで表示すると 1824x1200 になるためです。さらに、画面の上部にあるツールバーが使用可能な画面スペースを占有しているため、表示可能な領域がさらに小さくなり、形がぎこちなくなります。そのため、システムはこの画像が左右の境界線まで拡張されることを望んでいますが、それはできません。これは、高さが表示可能なスペースよりも大きくなることを意味するためです。以前wrap_content
はこの画像を表示していたため、システムは可能な限り多くの垂直方向のスペースを使用しており、その結果、画像が水平方向のスペースに完全に収まりません。
したがって、より直接的に質問に答えるために、yeswrap_content
は相対的なサイズ設定であり、dp
. しかし、市場には数千とは言わないまでも数百の Android デバイスがあり、それらはすべてさまざまな画面サイズと密度を持っていることに注意してください。したがって、ドローアブルは、すべてのデバイスで常に希望どおりに表示されるとは限りません。
これを克服する方法は、アセットの複数のバージョンを提供し、さまざまな画面サイズと密度に対応する代替レイアウト ファイルを提供することです。それができたら、できることは、テスト、テスト、そしてさらにテストすることだけです。奇妙な画面密度や所有していないデバイスにはエミュレーターを使用して、必要な外観が得られていることを確認してください。1920x1080 の画像の場合、その 1 つのデバイスでは見栄えがよくなりますが、画像の解像度よりも小さい大型のタブレットや小型のハンドセットにはどのように収まるのでしょうか? これらは、設計で考慮しなければならない状況です。
これらのリソースは、さまざまな画面サイズと密度に起因する問題に対処する方法を学ぶのに非常に役立つため、読むことをお勧めします。
http://developer.android.com/guide/practices/screens_support.html
http://developer.android.com/training/multiscreen/screensizes.html