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

如何使用android studio创建avd以预览真实设备?

索令
2023-03-14

我已经创建了Xiomi Redmi 3s(294dpi)的avd,其规格如下:

Android中的广义密度为:

  • Ldpi(低)~120 dpi-

当我使用设备规格创建avd时,指定的密度为xhdpi(x2),但与大多数设备一样,实际设备密度因子小于x2,因此预览结果与设备屏幕的实际外观不匹配。例如,Nexus5x的资源密度为xxhdpi(x3),但实际密度为2.63

在Android Studio中,仿真设备,如Nexus 5x或像素XL,分别指定420dpi和560dpi的特殊密度,其中密度因子约为2.6(xxhdpi)和3.5(xxxhdpi)。

为了确定Xiomi Redmi 3S的宽度dp及其密度因子,我使用了:

DPI/160=密度PxValue294/160 = 1,8375

我计算了真实的密度https://stackoverflow.com/a/5104104/4114846

结果是密度为294 dpi,实际密度因子为1.83,但系统分配的资源文件夹为xhdpi(x2),预览对应于广义密度。

如何通过指定设备的密度或其密度因子来创建avd和预览,使其看起来像实际设备?

如果你不能指定与Android Studio,我们有什么选择?

共有1个答案

水焱
2023-03-14

找到你的AVD文件夹。

C:\users\<user>\.android\avd

打开设备的文件夹并编辑行:

hw.lcd.density=320

在里面

config.ini

虽然您已经计算了294 ppi,但294是不允许的。允许的值为:

120, 160, 213, 240, 280, 320, 360, 400, 420, 480, 560, 640

请注意,这些是密度:

0.75, 1, 1.33, 1.5, ...

请注意,1.33不适合ldpi、mdpi、hdpi等Android列表。。。

它是必要的,所以mdpi和hpdi之间有一个值。我怀疑有213ppi显示器的硬件,但硬件规格经常变化。如今的手机在保持相同像素数的同时变得越来越大,所以几年前的4.5"、213 ppi的手机已经被5"、196 ppi的手机所取代。

硬件工厂将逻辑密度设置为他们喜欢的任何数字,但如果合理,他们将其设置为尽可能接近物理密度。因此,一个设备将被设置为213,即使它实际上是196。

不幸的是,这导致了像你遇到的问题。因为你说物理屏幕尺寸给出了294 ppi的分辨率,所以硬件很可能被设置为密度1.75(280 ppi)。这比物理ppi低5%,但设备通常报告与物理密度不同的逻辑密度(例如,213比196大8%)。

因为280正好介于240 hdpi和320 xhdpi之间,所以我不知道它将如何缩放视图。模拟器可以完美地呈现您的布局,但它可能使用hdpi文件夹中的绘图。您的客户端的硬件可能会从xhdpi文件夹中选择绘图,这将以非常不同的方式缩放它们。

 类似资料:
  • 我只想使用命令行工具创建一个新的虚拟Android设备。我想创建一个虚拟像素。 我能够创建一个新的AVD,但不幸的是,我不知道如何正确设置皮肤和正确的设备屏幕分辨率。 这是我到目前为止尝试过的: < code > C:\ Users \ * * * * * * * \ AppData \ Local \ Android \ Sdk \ tools 当我通过运行AVD时,我看到一个低分辨率设备,没有

  • 我是Android开发新手,创建一个新的AVD有问题。我使用的是英特尔®酷睿™i5-4670 CPU@3.40GHz×4,64位操作系统上运行的Ubuntu 14.04。 我已经看了这里的讨论,但它对我没有帮助。 我还成功安装了英特尔网站上给出的KVM。但在创建新的AVD时,我没有发现任何CPU/ABI系统映像,如下所示: 更新:我的Android SDK管理器是这样的: 我不知道我错过了什么。请

  • 目前,我正在处理Microsoft文档:Word(doc,docx)、Powerpoint(ppt,pptx)和Excel(xls,xlsx) 我想创建一个预览图像从它的第一页。 只有PowerPoint文档可以由Apache-poi库完成。 在我的文档中,它可能包含具有多个样式、表、图像或对象的文本。word文档第一页的示例图像: 哪个开源java库可以完成这项任务? 我尝试用以下库实现: >

  • 问题内容: 我有一个注释,该注释根据此惯用法接收“动态”参数,即接口类型的参数。简而言之: 现在,要评估此参数,我需要创建提供的实现的实例。上面链接的答案是在运行时执行的。但是,我正在按照本教程编写“实时”(即编译时)注释处理器。使用类型时,必须考虑它们可能尚未编译。本教程以以下方式处理该问题(在这种情况下,检索类型的名称): classTypeMirror.asElement(); qualif

  • 我需要创建一个简单的通知,这将显示在通知栏随着声音和图标,如果可能的话?我也需要它与Android 2.2兼容,所以我发现NotificationCompat.Builder适用于4以上的所有API。如果有更好的解决方案,请随时提及。