在我的应用程序中,我可以在触摸事件中在画布上绘制一些东西。
但问题是,一次可以在触摸事件中绘制单个项目。意味着如果我将putto()和moveto()然后它将绘制线条。 如果给出了addCircle()ll那么圆形绘制。还有Rect和椭圆形。
但我想为此提供不同的按钮。默认情况下,将绘制线条。如果按下Circle,则绘制圆形,如果按下Rect按钮,则Rectangle将使用相同的触摸事件在画布上绘制。
所以我想知道我将在触摸事件下写什么,以便它可以用于每次点击按钮? 给我一个方法。 谢谢
答案 0 :(得分:2)
//THESE ARE GLOBAL!
boolean isDrawing = false;
boolean circle = true; //default
boolean rect = false;
boolean line = false;
创建三个按钮:
Button circleB,rectB,lineB;
在circleB(onClick)中:
boolean circle = true; //set circle to true
boolean rect = false;
boolean line = false;
在rectB(onClick)中:
boolean circle = false;
boolean rect = true; //set rect to true
boolean line = false;
在lineB(onClick)中:
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;
}
}
答案 1 :(得分:0)
我不确定我是否正确理解你在说什么。但是,如果我这样做,可以使用canvas.drawCircle,canvas.drawRect方法完成。