web-dev-qa-db-ja.com

Android XMLのビットマップ画像サイズ

私の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>

上記のビットマップの幅と高さを減らすにはどうすればよいですか?

47
Erma Isabel

ビットマップの幅と高さのパラメーターはありませんが、重力とアイテムの幅/高さを使用してビットマップのサイズを設定できます。

<item
    Android:width="230dp"
    Android:height="70dp">
    <bitmap
        Android:gravity="fill_horizontal|fill_vertical"
        Android:src="@drawable/screen" />
</item>

重力を使用して、アイテムの幅と高さを設定し、その中にビットマップをスケールできます。

これは古い質問ですが、誰かが役に立つかもしれません。

警告:

コメントで既に述べたように、このメソッドはAPIレベル23(Android 6.0)以上でのみ動作します。

37
Nicolo

ただ使う

<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>
26
MaxF

画面に収まるように幅と高さを縮小し、正確な寸法を設定する必要がない場合は、親アイテムにleftrightを設定するだけです。これにより、基本的に画像の周囲に余白が追加され、スペースが少なくなります。

<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>

ただし、理想的には、各画面解像度(hdpixxhdpiなど)ごとに異なるサイズの画像をアップロードする必要があります。そうすれば、プログラムでサイズを設定する必要はまったくありません。完全なリストを見ることができます こちら

22
Kevin Cooper

このようにしてみてください、これは私のために働いた:

<?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>
12

これは、起動画面でミップマップのサイズを変更するために使用します。

<?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>
1
Gilbert Arafat

私は手動で画像のサイズを変更しましたが、それは私のために動作します

0
amorenew