- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这两个在数学方面做的一样吗?它们产生相同的结果吗?
Java:
pixel=10;
margin=px * getResources().getDisplayMetrics().density;
layout_param.topMargin=margin;
XML:
android:layout_marginTop="10dp"
最佳答案
是的,它们是,getDisplayMetrics() 中的密度是用于 documentation 之后的 dip 单元的密度:
public float density
Added in API level 1 The logical density of the display. This is a scaling factor for the Density Independent Pixel unit, where one DIP is one pixel on an approximately 160 dpi screen (for example a 240x320, 1.5"x2" screen), providing the baseline of the system's display. Thus on a 160dpi screen this density value will be 1; on a 120 dpi screen it would be .75; etc.
This value does not exactly follow the real screen size (as given by xdpi and ydpi, but rather is used to scale the size of the overall UI in steps based on gross changes in the display dpi. For example, a 240x320 screen will have a density of 1 even if its width is 1.8", 1.3", etc. However, if the screen resolution is increased to 320x480 but the screen size remained 1.5"x2" then the density would be increased (probably to 1.5).
关于android - getDisplayMetrics().density 与 dp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20546931/
我正在尝试获取用于在屏幕上放置元素和映射触摸事件的设备的像素宽度/高度,但没有获得所需的效果(注意右下角的方 block 应该与右下角完全齐平): // screen size Display
这两个在数学方面做的一样吗?它们产生相同的结果吗? Java: pixel=10; margin=px * getResources().getDisplayMetrics().density; la
在我的 android 中,avd 密度是 120,但是当我在 getResources().getDisplayMetrics().density 的帮助下计算它时,它是 .75。 为什么它们不同?
我有一个关于编译平台或预处理器的奇怪问题。 如果我用 eclipse 编译我的 android 项目,在运行时 getResources().getDisplayMetrics().densis 给我
我是一名优秀的程序员,十分优秀!