gpt4 book ai didi

android - 屏幕尺寸变化时如何缩放线条的粗细或笔划宽度

转载 作者:行者123 更新时间:2023-11-29 02:38:33 26 4
gpt4 key购买 nike

我正在玩一个在 Canvas 上绘制和追踪用户手指的应用程序。看这个picture ,绿色矩形是通过跟踪用户的手指运动绘制的。我从 android SDK 示例中提取了旧 FingerPaint 应用程序的大部分代码。它的要点是在 Canvas 上绘制路径:

    canvas.drawPath (path, paint)

我的第一个挑战是在屏幕变化时正确重绘路径。例如,当手机从垂直旋转到水平时,图像会调整大小,我必须沿着正确的坐标重新绘制路径。我能够使用 transform 正确地做到这一点.我使用 path.transform(matrix) 来转换路径的坐标。

我现在的下一个挑战是正确缩放线条的粗细。当我绘制路径时,线的粗细是用 setStrokeWidth 设置的。例如,我将厚度设置为 12:

    paint.setStrokeWidth(12);

我不知道如何在屏幕变化时正确缩放线条的粗细。没有人知道该怎么做吗?

一个建议是先将 Canvas 和路径保存为位图,然后在新的屏幕尺寸上重新绘制位图。但我不想这样做,因为我想支持撤消/重做操作,用户可以在其中撤消/重做在 Canvas 上追踪的路径。

最佳答案

你可以这样使用:

float screenWidthPixel  = this.getResources().getDisplayMetrics().widthPixels;
float screenHeightPixel = this.getResources().getDisplayMetrics().heightPixels;

float STROKE_WIDTH = screenWidthPixel * 0.0035f;
float Y_POSITION = screenHeightPixel * 0.01f;

paint.setStrokeWidth(STROKE_WIDTH);

关于android - 屏幕尺寸变化时如何缩放线条的粗细或笔划宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45652395/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com