在我的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>
如何减小上述位图的宽度和高度?
答案 0 :(得分:33)
虽然位图没有宽度和高度参数,但您可以使用重力和项目宽度/高度设置位图大小。
<item
android:width="230dp"
android:height="70dp">
<bitmap
android:gravity="fill_horizontal|fill_vertical"
android:src="@drawable/screen" />
</item>
您可以使用重力设置项目宽度和高度,并在其中缩放位图。
我知道这是一个老问题,但也许有人会发现它很有用。
警告:强>
正如评论中已经提到的,此方法仅适用于API级别23(Android 6.0)及更高版本。
答案 1 :(得分:21)
如果您希望缩小宽度和高度以使其适合屏幕,并且您不需要设置确切的尺寸,则可以在父级上设置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
),然后您根本不需要以编程方式设置尺寸。您可以看到完整列表here。
答案 2 :(得分:17)
只需使用
<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>
答案 3 :(得分:11)
尝试这样做,这对我有用:
<?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>
答案 4 :(得分:1)
完整解决方案只需复制粘贴并更改图像路径
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:gravity="center"
android:width="286dp"
android:height="176dp">
<bitmap
android:src="@drawable/logo"
android:gravity="fill_horizontal|fill_vertical" />
</item>
</layer-list>
答案 5 :(得分:0)
我只是手动调整图像大小,然后对我有用
答案 6 :(得分:0)
我用来在我的启动屏幕上调整mipmap大小的那个。
FOREIGN KEY (product_category, product_id)
REFERENCES product(category, id)'
FOREIGN KEY (product_category, product_id)
REFERENCES second_table(category, id)
答案 7 :(得分:0)
1.第 1 步:将 android:background=
添加到 Spinner/AppCompatSpinner
<androidx.appcompat.widget.AppCompatSpinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="@dimen/input_height"
android:background="@drawable/shape_drop_down_normal"
/>
shape_drop_down_normal.xml
中创建一个 /drawable
2A) 如果您有用于 Spinner 位图的 ic_spinner_dropdown.png drawable 资源
shape_drop_down_normal.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:width="20dp"
android:height="13dp"
android:gravity="end|center_vertical">
<bitmap
android:src="@drawable/ic_spinner_dropdown"
android:gravity="fill"
android:mipMap="true"/>
</item>
</layer-list>
2B) 如果您有用于 Spinner 位图的 ic_spinner_dropdown_vector.xml vector drawable 资源
shape_drop_down_normal.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:width="20dp"
android:height="13dp"
android:gravity="end|center_vertical"
android:drawable="@drawable/ic_spinner_dropdown_vector">
</item>
</layer-list>
警告!
android:width="20dp" android:height="13dp"
在图层列表中需要 API 23+, 使用
android:left="20dp"
android:right="13dp"
对于较低的 API 级别,或者干脆省略宽度和高度约束,并直接在 vector drawable 中设置 dp(它适用于所有 API 级别)。
答案 8 :(得分:-7)
从Android Developers我看到没有Bitmap XML的标签可以让你改变它的大小。您需要通过GIMP等一些图形应用程序来完成此操作。正如@Kevin Cooper所说,理想情况下,您需要为不同的屏幕类型创建不同的资源集(具有不同的大小)。
但您仍然可以使用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回答,因为他建议可以向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"
设置为项目。