我有每个密度的drawables为ldpi,mdpi,hdpi和xhdpi。
问题: 10"平板设备(1280x800)和手机设备320x480使用中等密度。我有一个35x35 mdpi的图像。但这张图片对于平板电脑而言太小了,而手机则没问题。
我阅读了相关文件。但我想我无法理解这一点。无论如何平板电脑使用xhdpi图像或我想知道如何使用更大的图像为mdpi平板电脑。
答案 0 :(得分:26)
您应该在可绘制文件夹中添加第二个标识符large
和/或xlarge
。增加drawable-xlarge-mdpi
的尺寸,直到您对结果满意为止,而drawable-mdpi
的尺寸与以前相同。
这会增加应用程序的大小,但它会解决您的问题。
答案 1 :(得分:18)
如果您想在不增加应用程序大小的情况下实现此目的,可以让高密度屏幕和大中密度屏幕使用相同的资源。您需要将要重复使用的图像放在'drawable-nodpi'文件夹中。这将阻止平台在使用时执行自己的缩放。例如,假设您有一个名为“my_resource”的资源,如果您希望平板电脑大小的屏幕使用您的xhdpi资源,那么将其移出drawable-xhdpi并将其重命名为:
/drawable-nodpi/my_resource_xhdpi.png
然后在drawable-xhdpi和drawable-xlarge文件夹中,创建一个名为my_resource.xml的文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/my_resource_xhdpi">
</bitmap>
现在当你使用@ drawable / my_resource时,xhdpi屏幕和xlarge屏幕将使用xhdpi版本,你只需维护一个版本的图像。我使用这种技术非常多,而且效果非常好。希望有所帮助!
答案 2 :(得分:10)
这些被定义为常见做法:
设备:
drawable-ldpi/xyz.png low resolution devices 320x240 (now a days no phone comes with this resolution)
drawable-mdpi/xyz.png medium resolution devices 480x320
drawable-hdpi/xyz.png high resolution devices 800x480
drawable-xhdpi/xyz.png Extra high resolution devices 1280*720
drawable-xxhdpi/xyz.png Extra Extra high resolution devices 1920x1080
片剂:
drawable-large-mdpi/xyz.png 7” Tablet (600x1024 mdpi)
drawable-xlarge-mdpi/xyz.png 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).
答案 3 :(得分:0)
除了drawable-hdpi文件夹之外,我还在drawable-xlarge和drawable-large文件夹中包含了一些资源。这对我有用。
另一种方法是直接在代码中缩放图像,我使用以下代码:
Drawable scaledIcon = new BitmapDrawable(Bitmap.createScaledBitmap(myImage, pxInt, pxInt, true));
myImageView.setBackgroundDrawable(scaledIcon);
在您的代码中扩展大量图像并不是一个好主意(使用此方法),因为我认为像这样动态修改图像是一种资源密集型。我在某些情况下使用它,我使用的图像可能不是标准尺寸(我希望它始终适合)。