私のXMLファイルでは、ビットマップを次のように使用しています
<bitmap
Android:src="@drawable/Icon"
Android:gravity="center"/>
ここでは、アイコンの画像の幅が画面を超えています。
私はAndroid:width = "100dp"などを試しました。しかし、それは機能していません。
完全なXMLファイル:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item>
<shape Android:shape="rectangle">
<stroke Android:width="3dp" Android:color="@color/black" />
<solid Android:color="@color/bg_green" />
</shape>
</item>
<item>
<bitmap
Android:src="@drawable/Icon"
Android:gravity="center"/>
</item>
</layer-list>
上記のビットマップの幅と高さを減らすにはどうすればよいですか?
ビットマップの幅と高さのパラメーターはありませんが、重力とアイテムの幅/高さを使用してビットマップのサイズを設定できます。
<item
Android:width="230dp"
Android:height="70dp">
<bitmap
Android:gravity="fill_horizontal|fill_vertical"
Android:src="@drawable/screen" />
</item>
重力を使用して、アイテムの幅と高さを設定し、その中にビットマップをスケールできます。
これは古い質問ですが、誰かが役に立つかもしれません。
警告:
コメントで既に述べたように、このメソッドはAPIレベル23(Android 6.0)以上でのみ動作します。
ただ使う
<item
Android:width="200dp"
Android:height="200dp"
Android:drawable="@drawable/splash_background"
Android:gravity="center" />
代わりに
<item
Android:left="200dp"
Android:right="200dp">
<bitmap
Android:src="@drawable/splash_background"
Android:gravity="center" />
</item>
画面に収まるように幅と高さを縮小し、正確な寸法を設定する必要がない場合は、親アイテムにleft
とright
を設定するだけです。これにより、基本的に画像の周囲に余白が追加され、スペースが少なくなります。
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item
Android:left="20dp"
Android:right="20dp">
<bitmap
Android:src="@drawable/Icon"
Android:gravity="center" />
</item>
</layer-list>
ただし、理想的には、各画面解像度(hdpi
、xxhdpi
など)ごとに異なるサイズの画像をアップロードする必要があります。そうすれば、プログラムでサイズを設定する必要はまったくありません。完全なリストを見ることができます こちら 。
このようにしてみてください、これは私のために働いた:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item
Android:width="30dp"
Android:height="30dp"
Android:gravity="center"
>
<bitmap
Android:src="@drawable/screen"/>
</item>
</layer-list>
これは、起動画面でミップマップのサイズを変更するために使用します。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:opacity="opaque">
<item Android:drawable="@color/colorPrimary"/>
<item
Android:width="200dp"
Android:height="200dp"
Android:gravity="center">
<bitmap
Android:gravity="fill"
Android:src="@mipmap/ic_launcher"
Android:mipMap="true"/>
</item>
</layer-list>
私は手動で画像のサイズを変更しましたが、それは私のために動作します