我正在尝试触摸应用程序的区域,以在屏幕上放置一个AND门。因此,当我触摸“与”门区域,然后再次触摸以将其放置在电路上时,门会在我触摸的位置绘制,但是一旦我再次触摸,它就会消失。
ive使用canvas.drawBitmap静态创建了一个电路,它们出现并停留在那里。意思是,香港专业教育学院创建了大量的canvas.drawBitmap图像,它们保留在屏幕上。
@Override public boolean onTouchEvent(MotionEvent motionEvent) { Log.d("Debugging", "In onTouchEvent"); if((motionEvent.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP) { placeComponent(); Touch.horizontalTouched = (int)motionEvent.getX()/ grid.getBlockSize(); Touch.verticalTouched = (int)motionEvent.getY()/ grid.getBlockSize(); } draw(); return true; } void placeComponent(){ Log.d("Debugging", "In placeComponent"); // Convert the float screen coordinates // into int grid coordinates touchTemp = whatWasTouched(Touch.horizontalTouched, Touch.verticalTouched); } private void regionHit() { Bitmap _andTest = BitmapFactory.decodeResource(getResources(), R.drawable.andgatetrans); if(touchTemp.equals("AND")){ canvas.drawBitmap(_andTest,Touch.horizontalTouched*grid.getBlockSize(),Touch.verticalTouched*grid.getBlockSize(),null); //drawIcons.drawANDGatev2(canvas,Touch.horizontalTouched*grid.getBlockSize(),Touch.verticalTouched*grid.getBlockSize()); } if(touchTemp.equals("OR")){ } if(touchTemp.equals("NOT")){ } if(touchTemp.equals("SWITCH")){ } } // used to tell regionHit() what to do private String whatWasTouched(float horizontalTouched, float verticalTouched) { if(horizontalTouched >= 5.0 && horizontalTouched <= 9.0){ if(verticalTouched >= 0.0 && verticalTouched <=4.0){ return "AND"; } } if(horizontalTouched >= 5.0 && horizontalTouched <= 9.0){ if(verticalTouched >= 5.0 && verticalTouched <=9.0){ return "OR"; } } if(horizontalTouched >= 5.0 && horizontalTouched <= 9.0){ if(verticalTouched >= 10.0 && verticalTouched <=14.0){ return "NOT"; } } if(horizontalTouched >= 5.0 && horizontalTouched <= 9.0){ if(verticalTouched >= 15.0 && verticalTouched <=19.0){ return "SWITCH"; } } if(horizontalTouched >= 0.0 && horizontalTouched <= 4.0){ if(verticalTouched >= 0.0 && verticalTouched <=4.0){ return "Play/Pause"; } } if(horizontalTouched >= 0.0 && horizontalTouched <= 4.0){ if(verticalTouched >= 5.0 && verticalTouched <=9.0){ return "EDIT"; } } if(horizontalTouched >= 0.0 && horizontalTouched <= 4.0){ if(verticalTouched >= 10.0 && verticalTouched <=14.0){ return "WIRE"; } } if(horizontalTouched >= 0.0 && horizontalTouched <= 4.0){ if(verticalTouched >= 15.0 && verticalTouched <=19.0){ return "LED"; } } return "-1"; }
注意:regionTouched()在onTouchEvent()的draw()中被调用我希望能够触摸我的单屏应用程序中指示“与”门的区域,然后再次触摸以将其放置在画布的空白部分并留在画布上,并在其中分配其在画布上的位置。它被放置。但是一旦我再次触摸屏幕,所有的工作都将被放置和移除。
我正在尝试触摸应用程序的区域,以在屏幕上放置一个AND门。因此,当我触摸“与”门区域,然后再次触摸以将其放置在电路上时,门会在...
[确定,因此,您的AND门是使用whatWasTouched()方法选择的,并放置在画布的空白部分中,在重复执行时,AND门消失了,您希望它保持在原位置吗?为此,您需要将AND门的位置保存在某处。