当前位置: 首页 > 知识库问答 >
问题:

使用不同的屏幕尺寸和不同密度的资源提取设备

冯德宇
2023-03-14

我正在为我的应用程序准备抽屉。经过一些研究,我知道需要考虑的3个参数是屏幕大小、密度和分辨率。

1.)因为对于特定的屏幕尺寸,如果密度变化,那么相应的分辨率将自动变化。此外,对于特定的密度,如果屏幕尺寸变化,那么相应的分辨率将自动变化。

按照这一逻辑,我不再考虑分辨率,计划只关注屏幕大小和密度。我的方法正确吗?

2.)现在根据文档,如果您正在为mdpi准备100x100映像,那么您应该分别为ldpi和hdpi准备75x75和150x150映像。

因此,我创建了一个大小为100x100、密度为160(mdpi)的图像资源可绘制(.png)。然后我创建了相同的图像,大小为75x75,密度为120(ldpi),大小为150x150,密度为240(hdpi),并将它们放在各自的drawables文件夹中。

但是在这样做之后,当我在具有不同屏幕大小和不同密度组合的模拟器上运行应用程序时,绘图在给定的空间中就不合适了。

在一些较小的屏幕尺寸中,第三个图标被切到一半。

我做错什么了吗?

谢谢你的帮助。

共有1个答案

何哲
2023-03-14

按照惯例,您必须将图像放入res/drawable文件夹中。

在res文件夹中,可能存在多个可绘制文件夹,如res/Draable-ldpi、res/Draable-mdpi、res/Draable-hdpi、res/Draable-xhdpi和res/Draable-tvdpi。

您可能正在为具有不同屏幕分辨率和屏幕尺寸的不同手机创建应用程序。

Android根据屏幕的dpi对手机屏幕进行分类,即ldpi、mdpi、hdpi、xhdpi、tvdpi(分别为低、中、高、xtra高、电视)。

您的目标是为目标设备的每种类型将图像的每个副本添加到这些文件夹中。为此,您必须以dpi比率调整图像大小。

3:4:6:8是默认的dpi缩放比例

更多

 类似资料:
  • 我试图理解一款支持不同屏幕大小的游戏(android)中的速度概念。 假设我有一个精灵,从横向模式的右端到左端需要10秒。帧速率并不稳定,所以有时会持续30秒,然后突然变为10秒。但我还是希望我的雪碧从一端到另一端需要10秒钟。我该怎么做? 这就是我所理解的: 通过将屏幕宽度除以从一端到另一端获取精灵的时间,可以获得基本速度。如果有稳定的帧速率,则基本速度是精灵每秒应添加到当前位置的速度。然而,我

  • 我试图用swXXXdp布局文件为不同的屏幕大小创建不同的布局。不幸的是,我仍然不能分开5,0“和6,3”作为可见的附上的图像。两种大小仍然使用相同的文件:layout-sw412dp。对此有什么想法吗?

  • 简介 本文将介绍 Weex 适配不同尺寸屏幕的方法以及横竖屏动态切换时如何自适应。 Weex 如何将前端样式值转换为系统坐标值 以 iOS 为例,在应用启动时,Weex 获取当前屏幕宽度作为全局默认值。在 iOS 系统上该宽度为实际像素/屏幕比例后的 UIKit 宽度。比如 iPhone6 为 375。 @implementation WXCoreBridge + (void)install

  • 我的第一个Android应用程序。而且,我正在努力解决这个问题- 然后我放了一个十美分硬币。xml 唷!但这还不够。我想有不同的文本大小(和其他尺寸,我不在这里谈论图像)的手机 下面是我正在做的一个例子: 然后在迪蒙斯。xml,应该是:17 这个值,即这里的17,将在每个设备中不同,即它在每个值文件夹下的每个dimens.xml中被赋予不同的值。我希望是清楚的。

  • 我仍然有问题的图像在我的应用程序的正确视图。所以在我的第一台设备上(5.2英寸 在第二台设备上(5.5英寸 这是我的布局中的ImageView: 我在Android博客上读到这篇文章后,将所有图像放在了drawable文件夹中: 通常有两种方法来针对所有屏幕DPI。1.最简单的方法-使所有图像特高或特高DPI。 如果设备与可绘制DPI不匹配,Android会自动缩放可绘制DPI。如果只创建高密度的

  • 有没有一种方法可以使用Java/Swing为不同的显示密度选择不同的图像,这样我的应用程序在更高密度的显示器上看起来就不会模糊?或者这不是那么重要或可能吗?我知道Chrome目前没有考虑到DPI,但Internet Explorer和其他应用程序都考虑到了。 谢谢您的帮助,我是一个长期的Java开发人员,我只是以前从未考虑过DPI,并想知道我应该如何去做:)