Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.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_Resolution_Scaling_Screen Resolution - Fatal编程技术网

Android 根据分辨率绘制不同尺寸的形状

Android 根据分辨率绘制不同尺寸的形状,android,resolution,scaling,screen-resolution,Android,Resolution,Scaling,Screen Resolution,我正在尝试为android编写一个应用程序。 因此,我有一个SurfaceView类来绘制所有对象 现在,例如,当我画一个圆时,我必须指定一个大小。 有没有办法根据屏幕分辨率和密度的大小来调整尺寸? 因为当我画一个圆时,我希望它在低分辨率设备上的大小与在高分辨率设备上的大小相同 当绘制半径为50px的圆时,较小屏幕上的圆比较大屏幕上的圆大 有什么想法吗 编辑: 我知道在创建一些布局时,我可以使用密度像素。但我不是在做布局,我是在surfaceview上面画画。当你画这样的东西的时候 canvas

我正在尝试为android编写一个应用程序。
因此,我有一个SurfaceView类来绘制所有对象

现在,例如,当我画一个圆时,我必须指定一个大小。
有没有办法根据屏幕分辨率和密度的大小来调整尺寸?
因为当我画一个圆时,我希望它在低分辨率设备上的大小与在高分辨率设备上的大小相同

当绘制半径为50px的圆时,较小屏幕上的圆比较大屏幕上的圆大

有什么想法吗

编辑: 我知道在创建一些布局时,我可以使用密度像素。但我不是在做布局,我是在surfaceview上面画画。当你画这样的东西的时候

canvas.drawCircle(x, y, size, paint);
大小以像素为单位声明半径。 有没有办法把像素转换成密度像素?有什么方法或类似的吗


提前感谢

我想你要找的公式(dip->px)发布在这里:


您并不希望它的尺寸相同,但外观相同。因为如果大小是固定的(px),那么就会出现密度问题,正如您自己所注意到的。使用密度像素,而不仅仅是像素。问题是当尝试绘制例如球体时,它会要求我提供精确的坐标和半径。当我键入canvas.drawCircle()时;它必须是一个浮动半径。将其声明为5时,其半径为5像素,而不是密度像素。如何在代码中将像素转换为密度像素?这可能有用:@fadden:我会检查的,谢谢!