【问题标题】:Android Studio doesn't use images from all dpi foldersAndroid Studio 不使用所有 dpi 文件夹中的图像
【发布时间】:2015-05-26 23:12:36
【问题描述】:

我正在开发一个 android 应用程序,并且我有一个自定义布局,我需要支持所有屏幕尺寸。为此,我创建了图像并将它们放在不同的 dpi 文件夹中(mdpi 到 xxhdpi)!。但 Android Studio 只使用一个 dpi 文件夹中的资源,用于实际设备和模拟器上的所有屏幕尺寸。

请告诉我该怎么做?应用发布将在几天内完成。

how it looks on Moto G2

how it looks on Nexus 7

提前致谢!

【问题讨论】:

  • 您为这些资源使用的确切文件夹结构是什么?你怎么知道 Android 只使用一个文件夹中的资源?
  • 你怎么知道“Android Studio 只使用一个 dpi 文件夹中的资源来处理实际设备和模拟器上的所有屏幕尺寸”?是什么让你得出这个结论?分享吧。
  • 我希望您放置在不同文件夹中的图像也具有不同的缩放比例......框架不会为您缩放它们。
  • @Bidhan A 在创建不同的图像之前,我只使用了一组图像,然后选项卡上的布局是相同的。即使在为不同的 DPI 创建图像之后也是一样的。此外,高度和宽度设置为 wrap_content
  • @Tanis.7x 我不完全知道它们是否在同一个文件夹中使用。但我已经相应地缩放了图像。

标签: android android-layout android-studio


【解决方案1】:

@Quark 我想做的是在所有设备上创建统一的外观。

我认为您正在尝试使用可绘制对象在不同的​​屏幕 dpi 和大小上占据相同的大小,但您做错了。如果您认为使用不同的 sezed drawables 将使按钮适应任何不同的屏幕,那您就错了,因为您没有考虑到尽管您为不同的 dpi 提供了 drawables,但屏幕的实际大小可能会有所不同。例如,考虑 2 台带有 XHDPI 屏幕的设备。它们都将使用相同的可绘制对象,但是如果第一个屏幕是 720 像素宽,而第二个屏幕是 450 像素宽,那么您提供的 XDPI 可绘制对象(假设它测量 80 像素)在两个屏幕中看起来不会相同。
在您的情况下,我会做的是使用gridLayout 3x2。然后将按钮放在单元格内并将它们设置为match_parentwrap_content,具体取决于单元格大小的相对高度。这样您的布局将适应任何屏幕。

也可以查看How to make perfect square shaped image/button

【讨论】:

  • 它没有解决我的问题,但是使用 gridLayout 后 UI 看起来好多了。谢谢你
  • 如果你需要我的电子邮件来问我一些事情,你可以在这里做:)
  • 使用 gridLayout 有助于将按钮保持在原位,但它们并不能帮助我重新调整图像大小。我应该在此处发布布局文件,以便您告诉我哪里出错了吗?
  • 感谢您的评论...在您的答案中添加该链接,我会接受答案...
【解决方案2】:

虽然没有足够的信息可以 100% 确定,但如果您在清单中设置了 targetSdkVersion,请检查清单。如果您不设置它,它的默认值为 1,这可能意味着无论实际设备是否具有大 API 级别,android 都会忽略稍后添加的一些密度。使用可用的最新 api 级别(您从 sdk 管理器下载的那个)

<uses-sdk 
      android:minSdkVersion="1"
      android:targetSdkVersion="22"/>

【讨论】:

  • minSdkVersion 不重要,你的targetSdkVersion 是什么?
  • targetSdkVersion 设置为 22
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-31
  • 2011-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-30
  • 2012-04-25
相关资源
最近更新 更多