Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.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 画布获取大小使用不同的设备保持更改屏幕大小_Android_Canvas_Ondraw - Fatal编程技术网

Android 画布获取大小使用不同的设备保持更改屏幕大小

Android 画布获取大小使用不同的设备保持更改屏幕大小,android,canvas,ondraw,Android,Canvas,Ondraw,我试图在一个视图的画布上画一个圆圈,我面临一个问题,在不同屏幕大小上测试代码后,我发现尽管我给视图的静态宽度和高度为300,但绘图大小会发生变化。我希望它在所有设备上都具有相同的大小。这是必然的,因为设备的密度不同。 尝试使用以下命令转换为像素/dpi private float dpFromPixels(float px) { return px / this.getContext().getResources().getDisplayMetrics().density; } pri

我试图在一个视图的画布上画一个圆圈,我面临一个问题,在不同屏幕大小上测试代码后,我发现尽管我给视图的静态宽度和高度为300,但绘图大小会发生变化。我希望它在所有设备上都具有相同的大小。

这是必然的,因为设备的密度不同。 尝试使用以下命令转换为像素/dpi

private float dpFromPixels(float px)
{
    return px / this.getContext().getResources().getDisplayMetrics().density;
}

private float pixelsFromDp(float dp)
{
    return dp * this.getContext().getResources().getDisplayMetrics().density;
}

这是不可避免的,因为设备的密度不同。 尝试使用以下命令转换为像素/dpi

private float dpFromPixels(float px)
{
    return px / this.getContext().getResources().getDisplayMetrics().density;
}

private float pixelsFromDp(float dp)
{
    return dp * this.getContext().getResources().getDisplayMetrics().density;
}

密度是屏幕每平方面积的像素数。密度较高的设备每平方英寸的像素数比密度较低的设备多,因此5英寸1080p设备上的300x300像素看起来比5英寸720p设备上的小得多。

密度是屏幕每平方面积的像素数。密度较高的设备每平方英寸的像素数比密度较低的设备多,因此5英寸1080p设备上的300x300像素看起来比5英寸720p设备上的小得多。

好的,基本上我对7选项卡上的尺寸很满意。我如何设置它总是使用这两种方法@懒惰的Ninjau使用dpFromPixels方法。我相信height=dpFromPixels300可以完成这项工作。我试过了,不幸的是画布上的图形仍然很小。我的意思是pixelsFromDp,使用它。好的,基本上我对它在7选项卡上的大小很满意。我如何设置它总是使用这两种方法@懒惰的Ninjau使用dpFromPixels方法。我相信height=dpFromPixels300可以完成这项工作。我试过了,可惜画布上的画还是很小的哦,我是说pixelsFromDp,用这个。