我正在尝试为我的游戏打造一个空间外观,并想在背景中添加星星。我决定做一个float[] points
并使其随机化。然后我使用canvas.drawPoints(points, white);
。这在我的模拟器上运行得很好。在手机上,您几乎看不到这些点。我想知道是否可以拥有比像素大的点(我知道这没有意义)或使用类似 drawRects(points, size, paint);
的方法。使用 for 循环效率不高,并且会使游戏变得缓慢。有没有其他方法或者我必须忍受延迟。
谢谢!
最佳答案
与您的模拟器和手机的密度不同有关。 1 px 在不同的屏幕上有不同的物理尺寸。您应该使用 dp(dip 或密度独立像素),然后将其转换为像素。
所以你的代码应该是这样的:
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 ...
关于java - 如何使用高密度屏幕上可见的绘制点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33622276/