Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 传递UI方法的单位是什么?_Android - Fatal编程技术网

Android 传递UI方法的单位是什么?

Android 传递UI方法的单位是什么?,android,Android,在阅读《Android开发者指南》时,它表示最好使用密度无关像素(dp)而不是像素,并表示Android可以在不同密度的设备上处理大多数应用程序渲染 现在我的问题是,如果我们看一下View类的padding函数 设置填充(左整数、上整数、整数 右,整数(下) 当我使用此函数时,是否可以直接传递值,还是必须传递转换后的值(从dp到px),以便在所有设备中最好地显示UI?检查并搜索android:padding 看起来您需要将倾斜转换为像素来设置填充。您应该将dip值转换为像素,以便它在不同的设备上

在阅读《Android开发者指南》时,它表示最好使用密度无关像素(dp)而不是像素,并表示Android可以在不同密度的设备上处理大多数应用程序渲染

现在我的问题是,如果我们看一下View类的padding函数

设置填充(左整数、上整数、整数 右,整数(下)

当我使用此函数时,是否可以直接传递值,还是必须传递转换后的值(从dp到px),以便在所有设备中最好地显示UI?

检查并搜索android:padding


看起来您需要将倾斜转换为像素来设置填充。您应该将dip值转换为像素,以便它在不同的设备上正常工作。

将dip值转换为像素,然后用它填充

final float scale = getContext().getResources().getDisplayMetrics().density;

int valuePixels = (int)(valueDip * scale);

谢谢我也这么认为。实际上,我只检查了setPadding函数描述,没有从doc中读取android:padding描述。根据它的描述,似乎我们必须将dp转换为像素以实现setPadding功能。
final float scale = getContext().getResources().getDisplayMetrics().density;

int valuePixels = (int)(valueDip * scale);