繁体   English   中英

如何将android位图别名为另一个大小的drawable(drawable-large-mdpi别名为drawable-hdpi)

[英]How can I alias an android bitmap to a drawable from another size (drawable-large-mdpi aliases to drawable-hdpi)

我正在努力为我的应用添加对平板电脑大小屏幕的支持。 我已经在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位图,但我不知道如何从特定目录引用drawable。 有帮助吗?

/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

此页面讨论了可以在资源文件夹上使用的不同修饰符。 它似乎表明优先顺序是屏幕尺寸(小,中,大,xlarge)高于密度(ldpi,mdpi,hdpi)。 我认为这意味着如果你将drawables-hdpi文件夹重命名为drawables-large-hdpi,即使Galaxy选项卡具有中等密度,它仍然会使用此文件夹中的drawables,因为它有一个大屏幕。

编辑:我刚刚测试了它,它确实以一种方式解决了你的问题。 它们在drawables-large-hdpi文件夹中的图像在运行应用程序时显示在Galaxy选项卡上。 但不幸的是,添加大型限定符使得它们不会出现在具有hdpi密度的中型屏幕上。 看起来你可能需要制作单独的文件夹并拥有2个大型资源的副本,如果你想获得这个功能=(。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM