Размер растрового изображения Android в xml

В моем XML-файле я использую растровое изображение как следующее

<bitmap android:src="@drawable/Icon" android:gravity="center"/> 

Здесь ширина изображения значка превышает экран.

Я пробовал андроид: 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> 

Как я могу уменьшить ширину и высоту вышеуказанного растрового изображения?

Пожалуйста, помогите, спасибо

Solutions Collecting From Web of "Размер растрового изображения Android в xml"

От разработчиков Android я увидел, что для Bitmap XML нет тега, который позволяет вам изменять его размер. Вам нужно сделать это через некоторые графические приложения, такие как GIMP. Как уже сказал @Kevin Cooper, в идеале вам нужно создавать разные наборы ресурсов (разных размеров) для разных типов экранов.

Но все же вы можете изменить его размер с помощью атрибутов width и height в ImageView , вместо создания растрового изображения с разным размером:

 <ImageView android:layout_width="50dp" android:layout_height="50dp" android:scaleType="center" android:src="@drawable/Icon" /> 

Если вы хотите повторно использовать это изображение в других местах, вы можете создать отдельный стиль и повторно использовать его:

 // in styles.xml <style name="Icon24x24"> <item name="android:src">@drawable/Icon</item> <item name="android:gravity">center</item> <item name="android:layout_width">24dp</item> <item name="android:layout_height">24dp</item> </style> // in layout.xml <ImageView style="@style/Icon24x24"/> 

Другим способом повторного использования может быть создание отдельного файла макета для одного ImageView а затем включение в другие макеты.

Если вы хотите использовать это bitmap внутри списка слоев, см. Ответ @Kevin Cooper, поскольку он предположил, что можно добавить paddings в layer list item :

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

И как @Nicolo также указал, что форма API 23, можно установить android:width и android:height" в 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 ), и тогда вам не нужно будет программно устанавливать размер вообще. Здесь вы можете увидеть полный список.

Несмотря на отсутствие параметров ширины и высоты для растрового изображения, вы можете установить размер растрового изображения с использованием силы тяжести и ширины и высоты элемента.

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

Вы можете установить ширину, высоту и масштаб растра, используя гравитацию.

Я знаю, что это старый вопрос, но, возможно, кто-то найдет его полезным.