android - 我如何将 android 位图别名为另一个尺寸的可绘制对象(drawable-large-mdpi 别名为 drawable-hdpi)

标签 android bitmap drawable tablet screen-size

我正在努力为我的应用添加对平板电脑大小屏幕的支持。对于不同密度的屏幕,我已经在 drawable-mdpi 和 drawable-hdpi 中有了图像。我的问题是像 Galaxy 7"这样的平板电脑,它是一个“大”屏幕,但仍然是中等密度。我的部分布局在屏幕宽度上有 5 个均匀分布的按钮。在带有 mdpi 图形的大屏幕上,虽然图片非常小,中间有大量空白。

我想为大布局使用更大的图形,使它们看起来合适并利用屏幕空间。我的 hdpi 目录中有一些双倍尺寸的图形,它们可以完美地工作。作为测试,我将所有图像从/res/drawable-hdpi 复制到/res/drawable-large-mdpi,一切看起来都和我想要的一模一样。

但是,我不想通过处理所有这些图像来扩大我的应用程序的大小。我只想为它们中的每一个创建别名,以便在请求/res/drawable-large-mdpi/button_0 时,它实际上会使用/res/drawable-hdpi/button_0。

我已经尝试创建一个 xml 位图,但我不知道如何从特定目录引用可绘制对象。有帮助吗?

/res/drawable-large-mdpi/button_0.xml 的内容:

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable-hdpi/button_0" />

我得到的错误是:

error: Error: No resource found that matches the given name (at 'src' with value '@drawable-hdpi/button_0_highlighted').

最佳答案

将按钮资源移至 drawable-nodpi 文件夹并将其重命名为 button_0_hdpi.xml

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/button_0" />

当使用 XML 别名时,您不能指定限定符。你有@drawable-hdpi,它需要只是@drawable。您可能还需要在按钮位图的原始位置创建第二个 XML 别名。

这里有一篇关于方法的好文章http://blog.evendanan.net/2011/03/Android-resources-and-device-fragmentation

关于android - 我如何将 android 位图别名为另一个尺寸的可绘制对象(drawable-large-mdpi 别名为 drawable-hdpi),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5047025/

相关文章:

安卓 ImageView ScaleType *FIT_TOP*

java - 如何在进入后台时完成应用程序

android - 尝试安装 HAXM 时出错 - Intel VT-x 已关闭

python - RLE8图像支持/用Pillow解压(PIL fork)

Android,使用自定义背景时隐藏库存切换?

安卓裁剪背景

java - Context.startForegroundService() 然后没有调用 Service.Foreground

java - Android View 更改 - 按钮状态重置

android - 位图大小大于宽度和高度

java - 使用 url 加载 imaeview 的任何更快的方法