gpt4 book ai didi

android - 如何在触摸事件中移动 Canvas 中的 ShapeDrawable

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:02:23 25 4
gpt4 key购买 nike

我正在尝试在 Android 中实现绘图应用程序。用户应该能够在其中选择和移动绘制的形状。
目前我已经在我的绘图 Canvas 上静态绘制了一些矩形和文本:

        View mDrawingCanvas = new View(mContext) 
{
ShapeDrawable rectangle;
@Override
public boolean isFocused() {
// TODO Auto-generated method stub
Log.d(TAG, "View's On focused is called !");
return super.isFocused();
}

@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub

return super.onTouchEvent(event);
}

@Override
protected void onDraw(final Canvas canvas) {
super.onDraw(canvas);
// Work out current total scale factor
// from source to view

final float scale = mSourceScale*(float)getWidth()/(float)mSize.x;

Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.WHITE);

//Custom View
rectangle = new ShapeDrawable(new RectShape());
rectangle.getPaint().setColor(Color.GRAY);
rectangle.getPaint().setStyle(Paint.Style.FILL_AND_STROKE);
rectangle.getPaint().setStrokeWidth(3);
rectangle.setBounds((int)(50*scale), (int)(30*scale), (int)(200*scale), (int)(150*scale));
rectangle.draw(canvas);

rectangle.getPaint().setColor(Color.BLUE);
rectangle.getPaint().setStyle(Paint.Style.FILL_AND_STROKE);
rectangle.getPaint().setStrokeWidth(3);
rectangle.setBounds((int)(200*scale), (int)(200*scale), (int)(400*scale), (int)(350*scale));
rectangle.draw(canvas);
}
};

我想在绘图 Canvas 的onTouch事件中选择(在所选形状上绘制边框)并移动绘制的Shapes。
有人可以指导我吗,非常感谢任何帮助。

最佳答案

这个答案展示了我一直在寻找的形状移动方法。
现在我的问题已经解决了。链接是:
Drag and move a circle drawn on canvas

关于android - 如何在触摸事件中移动 Canvas 中的 ShapeDrawable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19354776/

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