【问题标题】:Android drawable folder image sizeAndroid可绘制文件夹图像大小
【发布时间】:2014-07-19 18:06:37
【问题描述】:

我对 Android 很陌生,我正在做一个宠物项目,以便我学习 Android。基本上我想在屏幕上显示六个图像。我注意到了可绘制文件夹,并且在 drawable-xhdpi 文件夹中有 256x256px inages。在 android studio 的 Nexus 5 预览中,它看起来很棒,但在 Nexus 7(2012 版)中,图像非常小,而且 Nexus 5 和 Nexus 7 都使用 drawables-xhdpi 文件夹。

这是我的代码:

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/imageMars"
    android:id="@+id/imageJupiter"
    android:src="@drawable/jupiter"
    android:contentDescription="@string/content_desc_jupiter"
    android:layout_toRightOf="@+id/imageVenus"
    android:adjustViewBounds="true"/>

如何使图像在 Nexus 7 上看起来更大,但在 Nexus 5 上又不会太大?

而且我希望应用程序在其他设备上也看起来不错,所以我认为为图像设置固定大小(例如 70dp x 70dp)不会起作用

谢谢

【问题讨论】:

    标签: android android-studio android-drawable


    【解决方案1】:

    Android 的最佳做法是在每个文件夹中提供正确大小的图像,并让系统根据设备选择最佳的图像。 Supporting Multiple Screens 是必读的。

    基本上,系统将导航到最能满足其屏幕需求的文件夹,如果它需要的图像在那里,那就太好了;如果不是,它将导航到下一个最佳文件夹,依此类推。如果它不能为设备使用最好的,它会使用你给的最好的,并尽力让它看起来尽可能好。有时这不是那么好。它可以将图像拉伸或缩小到丑陋的状态。

    同样,最好的办法是在每个文件夹中提供多个尺寸的同一图像以获得所需的结果。


    编辑(回应评论):

    猜不出来。在 Eclipse/ADT 中我有

    • Nexus 4 @ 768x1280 - 正常 xhdpi
    • Nexus 7 (2012) @ 800x1280 - 大 tvdpi

    因此,不管“更大”如何,事实仍然是他们从不同的可绘制文件夹中提取资源。据说大多数应用程序都不需要 tvdpi,因为它介于 mdpi 和 hdpi 之间,而且这些文件夹通常就足够了。也许添加 tvdpi 并查看它是否有任何变化,并确保您已根据文件夹正确缩放图像。


    编辑:

    好的,您遇到的行为是正常的 - 不幸的是我想 - 但我找到了 a 解决方案。我个人从未遇到过这种情况,因为我了解到最好利用大屏幕上的额外区域来放置更多内容。

    无论如何,好像您没有足够的drawable 文件夹,您需要另一个或三个可绘制文件夹以及更多图像 - 是的!

    在我之前的编辑中,我提到了在 Eclipse ADT 中出现的可绘制文件夹的“Normal”和“Large”修饰符。好吧,事实证明这些也是有效的文件夹,某些带有smalllargexlarge 屏幕的设备将使用它们。

    我可以通过添加另一个标题为drawable-xlarge-xhdpires 目录来获得更大的图像;这是为 Nexus 10 准备的。我将你的 jupiter 文件放大到 512x512 并且...

    注意:我读到这不是推荐的解决方案,但在 Android 文档中看不到任何警告它的地方。研究可能是必要的!


    【讨论】:

    • 我在这些文件夹中添加了多种图像分辨率,但 Android Studio 认为 Nexus 5 和 nexus 7(2012) 都使用 xhdpi 文件夹中的可绘制对象
    • 我在上面看到了conflicting info。愿意将我链接到 Android Studio 文档吗?
    • 这是 Nexus 4 而不是 nexus 5。抱歉。 i58.tinypic.com/beyo5.jpg
    • 并且不应该是nexus 7大于nexus 5(意思是xhdpi vs xxhdpi)?
    • 我从您的链接中查看了文档,并按照该文档和link 的回答中的内容缩放了图像,但没有任何改变。小屏设备都好看,但是nexus 7和nexus 10上的图片太小了
    【解决方案2】:

    您应该为不同的显示尺寸/分辨率提供不同的图像尺寸。那就是drawable-100w等文件夹。

    如果您不想这样做,但仍希望调整图像大小以使用所有可用空间,则必须以编程方式调整 ImageView 元素的大小。

    【讨论】:

      猜你喜欢
      • 2016-12-14
      • 1970-01-01
      • 2016-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-31
      • 1970-01-01
      相关资源
      最近更新 更多