android - 在 xml 中调整位图中的图像大小

标签 android xml bitmap

我是 Android 编程新手。最近,我开始了一个项目,想为 Android 应用程序制作启动画面。我在 following this tutorial 之后阅读并成功实现了启动画面。 .但是,我意识到我的应用 Logo 伸出了屏幕,如下所示:

Stretched out app logo

下面是我的background_splash.xml :

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@drawable/splash_background" />

    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/tap" />
    </item>
</layer-list>

我试过了

android:width="75sp"
android:height="75sp"

<bitmap>但它不起作用。因此,我想知道除了使用 ImageView 之外是否有调整图像大小的方法(最好没有 Java 代码)。 .任何帮助将不胜感激!

最佳答案

我在为我的应用程序设计启动画面时遇到了同样的问题(遵循您上面提到的相同链接和其他一些链接),并进行了一些谷歌搜索得到了我的答案。

解决方案很简单,不涉及编码。 即。您不需要在 xml 中指定高度和宽度。至于发生这种情况的原因,您的图像分辨率高于如下所述。

解决方案:

您需要提供映射到各种屏幕尺寸的各种分辨率的图像。以下是 Google 提供的各种显示器的最小屏幕尺寸列表(全部以像素为单位):-


对于 Android 移动设备

LDPI- 426 x 320

MDPI- 470 x 320

HDPI- 640 x 480

XHDPI- 960 x 720


对于 Android 平板设备

LDPI- 200 x 320

MDPI- 320 x 480

HDPI- 480 x 800

XHDPI- 720 x 1280


所以您需要做的就是调整所有尺寸的图像,加载/strong> Drawable 中的图像根据它们的大小(例如:drawable-hdpi 包含hdpi 图像)并将其传递给background_splash。 xml(你当然可以保留相同的名称)。重建项目并运行它。应该符合您的规范。

注意:代码根本不需要更改。对于图像大小调整,您可以使用 Adob​​e Photoshop(我发现它更容易使用)。

根据喜好,您还可以使用9 Patch image,这样图像的边框可以拉伸(stretch)以适应屏幕大小,而不会影响图像的静态区域。

http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

关于android - 在 xml 中调整位图中的图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36012389/

相关文章:

javascript - 如何定位嵌套 XML 数据以更新 firebase

java - 打印 POS/ESC Apex3 图像 S.O.S

android - 在 Android 中调整 Drawable 的大小

android - 如何在最新版本的 Android Studio(2017,2.3.1+)中导入库?

android - 如何使用 Android 在 sqlite 中获取行数?

Android 分页 3 库 - 用于从 Room 数据库分页数据,数据更改时流程变为空

xml - XSL 使用 <xsl :if> and sorting 测试空字符串

Android 打开外部 UVC 摄像头而不是硬件摄像头

java - 将 JSON 对象解析为 XML

android - 从 byte[ ] 获取位图