有人可以告诉我Android如何计算屏幕密度?
我的问题是我有一个480x800分辨率和7"对角线屏幕的设备(ODYS Space).如果我计算它的密度,我得到一个133 DPI的值,但Android(2.2和2.3)报告它像"MEDIUM"密度设备(160 DPI).
我正在与多屏幕支持作斗争,所以我认为133 DPI会报告像"LOW"而不是"MEDIUM"所以现在我的屏幕布局看起来非常愚蠢.
我用这样的代码检查设备:
DisplayMetrics dMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dMetrics);
int d=dMetrics.densityDpi;
Run Code Online (Sandbox Code Playgroud)
如果我在配置的虚拟设备(480x800/7"和133 DPI)上运行该代码,那么我得到密度= 120.
在真实设备上为什么会说160呢?
我是Android开发的新手,我在android studio上构建了一个应用程序,我想让我的应用程序在所有设备上都有相同的设计:
三星Galaxy S4 => 1080x1290; 5.0"
Galaxy Nexus => 720x1280; 4.7"
Nexus 4 => 768x1280; 4.7"
摩托罗拉Droid Razr M => 540x960; 4.3"
Nexus S => 480x800; 4"
Galaxy S2 => 480x800; 4.3"
Galaxy Ace => 320x480; 3.5"
Galaxy Note => 800x1280; 5.3"
Galaxy Note II => 720x1280; 5.5"
Nexus 10 => 2560 x 1600; 10.1"
Galaxy Tab 10.1 => 1280*800; 10.1"
Galaxy Note 8.0 => 1280*800; 8.0"
Galaxy Tab 7.7 => 1280*800; 7.7"
Nexus 7 => 1280*800; 7.0"
Galaxy …
layout android screen-orientation screen-size android-screen-support
我正在创建一个标尺应用程序,我可以在其中以毫米为单位测量任何东西。
类似于这个应用程序https://play.google.com/store/apps/details?id=org.nixgame.ruler&hl=en_IN但非常基本的东西。
我将Divider小部件重复到一个Column小部件中,并保持给定的6.299间隙。
class Ruler extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: rulerPin(350),
),
);
}
List<Divider> rulerPin(int count) {
return List.generate(count, (i) {
return Divider(
height: 6.299,
thickness: 1,
);
}).toList();
}
}
Run Code Online (Sandbox Code Playgroud)
但问题是当我用手机上的物理标尺测量时,数值不匹配。检查给定的屏幕截图。
我正在使用此参考从毫米计算逻辑像素
请建议我是否遵循正确的方法。
由于特殊需求,在我的android布局中,我使用"mm"来提供大小.在TextView中,我也提供了"mm"的尺寸.当我这样做时textView.getTextSize(),返回的大小始终是像素值.我想将该像素值转换为"mm".例如,如果我将字体大小设置为"2mm",那么在任何设备上,当我这样做时getTextSize(),我想得到"2mm".
我应该使用任何具体方法吗?我可以找到将"mm"转换为"像素"的答案,但无法找到任何关于转换的内容,反之亦然.
我做了我的分析,发现我的应用程序的大多数用户将是三星Galaxy S2和三星galaxy note.研究他们的技术规格,我发现:Galaxy S2:480 x 800像素,4.3'显示
Galaxy Note:1280 x 800,5.3"屏幕
如何将这些分类为布局大小和设计级别?我想我可以弄清楚android开发页面中提到的布局大小但是我无法知道密度级别(低,中高xhigh).他们说我需要dpi但是在功能规格方面,我很少看到dpi,我只看到上面的分辨率谢谢