Android 像路径一样绘制.png图像
因此,我有一个PNG文件,我在我的应用程序中用作自定义笔刷。当一个运动事件发生时,我不断地重画它以产生画笔效果。但是,如果我拖得太快,我会错过像素,一些画笔看起来非常糟糕——就像图像只是画在彼此上面一样 我有没有办法用Android 像路径一样绘制.png图像,android,graphics,draw,paint,imagebrush,Android,Graphics,Draw,Paint,Imagebrush,因此,我有一个PNG文件,我在我的应用程序中用作自定义笔刷。当一个运动事件发生时,我不断地重画它以产生画笔效果。但是,如果我拖得太快,我会错过像素,一些画笔看起来非常糟糕——就像图像只是画在彼此上面一样 我有没有办法用drawpath模式来代替它 下面的代码是我的onDraw方法。mbitmapBrush变量具有PNG图像文件,pos.a和pos.b是当前运动事件的“x”和“y”坐标 @Override protected void onDraw(Canvas canvas) {
drawpath
模式来代替它
下面的代码是我的onDraw
方法。mbitmapBrush
变量具有PNG图像文件,pos.a
和pos.b
是当前运动事件的“x”和“y”坐标
@Override
protected void onDraw(Canvas canvas) {
Paint paint=mPaint;
canvas.drawColor(0xFFAAAAAA);
mCM.set(new float[]{1f, 1f, 1f, 0f, 1f,
0f, 1f, 3f, 0f, 4f,
1f, 4f, 1f, 1f, 0f,
1f, 0f, 0f, 1f, 0f });
ColorMatrixColorFilter cm3=new ColorMatrixColorFilter(mCM);
paint.setColorFilter(cm3);
canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
for (Vector2 pos : mPositions) {
canvas.drawBitmap(mBitmapBrush, pos.a, pos.b, paint);
//canvas.drawCircle(pos.a, pos.b, 7, mPaint);
}
//canvas.drawBitmap(mBitmapBrush, clickX, clickY, null);
//canvas.drawPath(mPath, mPaint);
invalidate();
}
您是否考虑过使用自定义的
SurfaceView
并从循环中手动调用draw()
方法?这样,您就可以更好地控制它的绘制速率。是的,尝试这样做,使用getHistoricalX
和gethistorical
也将有助于创建更多的绘制点。在什么条件下我可以运行循环以使其绘制更多点?如果每次调用onTouch()
时都更新位置,那么您已经获得了可能的最佳时间分辨率。我会创建一个线程,并有一个while循环来调用mySurface.draw()
,然后每次循环都会休眠20毫秒。或者,每次调用onTouch()
时,您也可以调用draw()
。嘿,我是图形API的新手,我手动调用了该方法,工作更流畅,但不是在曲面视图中。你能给我一个小的代码片段,仅仅是一些展示surfaceview工作的东西吗。感谢这将有助于您掌握如何扩展SurfaceView
: