繁体   English   中英

如何使用在高密度屏幕上可见的绘制点

[英]How do you use draw points visible on high dense screens

我试图在游戏中留出空间,并想在背景中添加星星。 我决定提出一个float[] points并将其随机化。 然后,我使用canvas.drawPoints(points, white); 这在我的模拟器上效果很好。 在电话上,您几乎看不到要点。 我想知道我是否可以拥有大于像素的点(我知道那没有意义)或使用诸如drawRects(points, size, paint); 使用for循环效率不高,这会使游戏变得迟钝。 还有其他方法还是我必须忍受滞后。

谢谢!

它与模拟器和电话的不同密度有关。 不同屏幕上的1像素具有不同的物理尺寸。 您应该使用dp(独立于像素或密度的像素),然后将其转换为像素。

因此,您的代码应如下所示:

ind dpRadius = 1;
Resources r = getResources();
float pxRadius = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpRadius, r.getDisplayMetrics());

Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStrokeWidth(pxRadius);
paint.setStyle(Paint.Style.STROKE);

// your drawPoints code ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM