【问题标题】:Android : Understanding drawable folderAndroid:了解可绘制文件夹
【发布时间】:2012-05-18 01:04:52
【问题描述】:

我在drawable 文件夹下有一个尺寸为 250*70 像素的图像(我刚刚开始进行 Android 开发,所以我在res 中创建了drawable 文件夹)并且我有更高尺寸的相同图像在drawable-large 文件夹中;但图像看起来不像我预期的那样。

谁能解释 3 个可绘制文件夹背后的原因/目的?

我应该将我的图像存储在哪里,以便它在两种模式(横向和纵向)和所有手机(包括平板电脑)中都能正常显示?

我希望我的图像动态缩放到设备屏幕的大小。

任何人都可以分享您的观点或搜索链接吗?

【问题讨论】:

  • 你应该阅读this...

标签: android image drawable


【解决方案1】:

文件夹名称必须是:

  • /drawable-ldpi 用于低密度屏幕
  • /drawable-mdpi 适用于中等密度屏幕
  • /drawable-hdpi 用于高分辨率屏幕
  • /drawable-xhdpi 用于超高分辨率屏幕

/drawable 应该保留给您 (1) 不关心哪个设备或 (2) xml 可绘制资源的资产

除此之外,您可以使用配置限定符根据配置提供不同的资源,您可以在此处阅读所有相关信息http://developer.android.com/guide/topics/resources/providing-resources.html

例如,您可以通过文件夹拥有高分辨率的横向资源

  • /drawable-land-hdpi

希望有帮助

【讨论】:

    【解决方案2】:

    默认情况下,Android 为具有不同分辨率的图像维护三个文件夹,其背后的原因是应用程序将在其上执行的 Android 设备的使用或分辨率。

    hdpi 图像文件夹维护 Android 宽屏集或具有更高分辨率的 Android 手机的图像。

    ldpi 用于较低的图像质量,由早期的 android 集支持

    mdpi 用于中等图像支持 用于具有最大分辨率的设备的 xhdi 图像文件夹。

    Android 操作系统通过检查兼容设备及其分辨率来选择自己的图像。

    希望对您有所帮助。如果您得到您的解释,请接受。

    【讨论】:

    • 我可以把所有的图片放到同一个文件夹里,但是给他们合适的结尾吗?比如xxx_ldpi.png,xxx_mdpi.png,xxx_hdpi.png,......
    【解决方案3】:

    可绘制的 ldpi

    可绘制的 mdpi

    drawable-hdpi

    可绘制-xhdpi

    可绘制-tvdpi

    drawable-nodpi

    drawable-xxhdpi

    drawable-xxxhdpi

    We can also use "drawable-xxhdpi"
    xxhdpi (480dpi, Android 4.1 or later)
    

    请参阅以下链接中的“Android 表格列”

    http://en.wikipedia.org/wiki/Smartphone

    请参考以下链接(xxxhdpi)中的“表1”

    http://developer.android.com/guide/practices/screens_support.html#xxxhdpi-note

    注意:drawable-xxxhdpi 限定符仅用于提供在 xxhdpi 设备上看起来比平常更大的启动器图标。您无需为应用的所有图像提供 xxxhdpi 资产。

    注意将在以下链接中 http://developer.android.com/design/style/iconography.html#xxxhdpi-launcher

    【讨论】:

    • 现在每个人的 min sdk 目标都是 15 或更大,这意味着甚至不查看 ldpi、mdpi 和 hdpi 文件夹。我的建议是在这些文件夹中排除可绘制对象。真的,除非你有非常小的细节资产,否则你可以只在 xhdpi 中放置可绘制对象并为自己节省一些空间。
    • 如果用户想节省空间,那么用户可以使用“九个补丁”图像。因为这样会节省很多空间
    【解决方案4】:

    您应该使用drawable-hdpi 文件夹而不是drawable-large

    另外Supporting Multiple Screens页面可能对你有帮助

    【讨论】:

    • 如果你的手机是 xhdpi 以 320 dpi 加载 100px 宽的图像,那么 mdpi (160) 的图像是 50px 对吗?如果我的手机是 xhdpi 而我的平板电脑是 mdpi,那么如果屏幕密度较低,如何让图像看起来更大?我需要两个 image.png 吗? image_phone.png 和 image_tablet.png?我会将其存储在可绘制的 - xlarge - mdpi 中吗?如果是这样,这是否意味着我需要将近 32 个文件夹才能支持 mdpi、hdpi、xhdpi、xxhdpi、small、normal、large、xlarge(低于 3.2)和 sw320dp、sw480dp、sw600dp、sw780dp?我哪里错了?
    【解决方案5】:

    实际上有 4 种屏幕分辨率标准 - 请查看此链接以获取更多信息 http://developer.android.com/guide/practices/screens_support.html ,如下表。当您在设备上安装应用程序时,设备会返回这些标准之一并从相应的文件夹中选择资源 - ldpi、mdpi、hdpi 和 xhdpi

    【讨论】:

      【解决方案6】:

      1) 不同可绘制文件夹背后的原因 - 通过适应每个设备的屏幕密度来增强用户在使用我们的应用时的体验。

      2) “我应该在哪里存储...” - 理想情况下,您可以为存在的每个屏幕密度存储具有适当尺寸的图像。如果您是初学者,只需使用一个文件夹,现在不用担心。

      4) 图像缩放 这是一个很酷的指南,可帮助您在应用程序内进行图像缩放: https://thoughtbot.com/blog/android-imageview-scaletype-a-visual-guide

      3) 链接: https://material.io/tools/devices/ - 所有设备和密度的列表

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多