android如何在画布上绘制圆形、矩形?
在我的应用程序中,我能够在触摸事件中在画布上绘制一些东西 但问题是,一次可以在触摸事件中绘制单个项目。意思是如果我把lineto()和moveto()放在一起,它就会画线。 如果给定了addCircle()ll,则绘制圆。对于矩形和椭圆形也是如此 但是我想给你不同的按钮。默认情况下,将绘制一条直线。若我按下圆圈,那个么圆圈将被绘制,若按下Rect按钮,那个么矩形将使用相同的触摸事件在画布上绘制 所以我想知道我将在触摸事件下写些什么,这样每次点击按钮都能正常工作? 给我一条路。android如何在画布上绘制圆形、矩形?,android,Android,在我的应用程序中,我能够在触摸事件中在画布上绘制一些东西 但问题是,一次可以在触摸事件中绘制单个项目。意思是如果我把lineto()和moveto()放在一起,它就会画线。 如果给定了addCircle()ll,则绘制圆。对于矩形和椭圆形也是如此 但是我想给你不同的按钮。默认情况下,将绘制一条直线。若我按下圆圈,那个么圆圈将被绘制,若按下Rect按钮,那个么矩形将使用相同的触摸事件在画布上绘制 所以我想知道我将在触摸事件下写些什么,这样每次点击按钮都能正常工作? 给我一条路。 谢谢你我不确定我是
谢谢你我不确定我是否正确理解你在说什么。但如果我这样做了,可以使用canvas.drawCircle、canvas.drawRect方法来完成
//THESE ARE GLOBAL!
boolean isDrawing = false;
boolean circle = true; //default
boolean rect = false;
boolean line = false;
创建三个按钮:
Button circleB,rectB,lineB;
在圆圈(onClick)中:
在rectB(onClick)中:
在B行中(单击):
对于圆大小:
//Global
int size = 10; //Default:
boolean isScaling=false;
是的,我知道。我正在使用路径。行path.lineto()和path.moveto()的路径中也有。对于圆路径,存在addcircle()。但我想知道如何在点击按钮时添加不同的内容?是否存在触控向下、触控移动和触控向上的意思?所以,如果我写path.lineto(),path.moveto(),path.addcircle(),那么它将一次添加。但我想,如果我按下圆圈按钮,那么它将只画圆圈而不是线条。谢谢你的回复。我只喜欢这个,但它不能正常工作。还有其他方法吗?我编辑并添加了
布尔isDrawing
。你能告诉我问题出在哪里吗?每次圆半径相同,因此绘制的圆大小相同,我还想知道一件事。但我想,如果我触摸并移动,则圆圈大小将增加,如果触摸,则最后一个大小的圆圈将出现在那里。我该怎么做呢?实际上,关键是它的工作。从小到大,所有的圆圈都在那里可见。我只想要最后一个圆圈。我该怎么做?有没有做过任何事情来改变每个绘图项目的颜色,比如线条、圆圈或其他什么?如果是,请在此处回复。
boolean circle = false;
boolean rect = true; //set rect to true
boolean line = false;
boolean circle = false;
boolean rect = false;
boolean line = true; //set line to true
//Global
int size = 10; //Default:
boolean isScaling=false;
public boolean onTouch(View arg0, MotionEvent e) {
switch(e.getAction()){
case(MotionEvent.ACTION_DOWN):
isScaling=true;
break;
case(MotionEvent.ACTION_MOVE):
if(isScaling){
size++; //increment as you want
}
break;
case(MotionEvent.ACTION_UP):
isScaling=false;
if(!isDrawing){
isDrawing=true;
if(circle)
{
//code to Draw Circle
}
else if(rect)
{
//code to Draw Rect
}
else if(line)
{
//code to Draw line
}
isDrawing=false;
}
//reset size I think it is better to reset it
break;
}
}