在为多个屏幕开发时,在哪里放置drawable?

时间:2013-12-19 06:43:27

标签: java android android-layout user-interface android-drawable

我正在为多个屏幕开发,所以我的布局是布局,布局大,布局-xlarge。这些布局的按钮背景已发布在drawable-hdpi,drawable-xgdpi,drawable-xxhdpi文件夹中。

但是,当我运行应用程序时,布局似乎正在选择可用的最小的drawable。 xhdpi未使用正确大小的图像。为什么是这样?我是否需要创建可绘制文件夹的单独结构?

4 个答案:

答案 0 :(得分:3)

你应该遵循四个广义密度之间的3:4:6:8缩放比例。
例如,如果你有一个位图可绘制的中等密度屏幕的48x48像素(大小)对于启动器图标),所有不同的大小应该是:

36x36 for low-density
48x48 for medium-density
72x72 for high-density
96x96 for extra high-density

请详细了解此链接:Android Iconography

答案 1 :(得分:3)

// try this way
                            ldpi    mdpi    hdpi    xhdpi   xxhdpi    xxxhdpi
Launcher And Home           36      48      72      96      144       192
Tab,Dialog and List         24      32      48      64      96        128
Action Bar And Status Bar   18      24      36      48      72        96
Background                  320*426 320*470 480*640 720*960 1080*1920 1080*1920

答案 2 :(得分:2)

根据文档,

由于Android在具有各种屏幕密度的设备中运行,因此您应始终提供针对每个广义密度桶定制的位图资源:低,中,高和超高密度。这将有助于您在所有屏幕密度上实现良好的图形质量和性能。

要生成这些图像,您应该以矢量格式开始使用原始资源,并使用以下大小比例为每个密度生成图像:

xhdpi: 2.0
hdpi: 1.5
mdpi: 1.0 (baseline)
ldpi: 0.75

这意味着如果为xhdpi设备生成200x200图像,则应在150x150中为hdpi生成相同的资源,为mdpi生成100x100,为ldpi设备生成75x75图像。

然后,将生成的图像文件放在res /下的相应子目录中,系统将根据运行应用程序的设备的屏幕密度自动选择正确的文件:

MyProject/
  res/
    drawable-xhdpi/
        awesomeimage.png
    drawable-hdpi/
        awesomeimage.png
    drawable-mdpi/
        awesomeimage.png
    drawable-ldpi/
        awesomeimage.png

然后,只要你引用@ drawable / awesomeimage,系统就会根据屏幕的dpi选择合适的位图。请参阅此link

答案 3 :(得分:1)

有用的链接:http://developer.android.com/guide/practices/screens_support.html

Android会自动选择使用哪一个。而较小的一个更喜欢。确保将drawable放在正确的dpi文件夹中。所以较大的on应该放在drawable-xxhdpi上,最低的应该是drawable-ldpi。