Zeichne einen Kreis auf touch
Ich versuche einen Kreis zu zeichnen, wo Benutzer berührt Bildschirm .
public class MainActivity extends Activity implements OnTouchListener {
LinearLayout layout;
float x=0;
float y=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_main);
layout=(LinearLayout)findViewById(R.id.layout);
layout.addView(new CustomView(MainActivity.this));
}
public class CustomView extends View {
Bitmap mBitmap;
Paint paint;
public CustomView(Context context) {
super(context);
mBitmap = Bitmap.createBitmap(400, 800, Bitmap.Config.ARGB_8888);
paint=new Paint();
paint.setColor(Color.RED);
paint.setStyle(Style.FILL);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.setBitmap(mBitmap);
canvas.drawCircle(x, y, 50, paint);
Toast.makeText(MainActivity.this, "DDD", 1).show();
}
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
layout.invalidate();
}
return false;
}}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde es so machen:
onTouch()
Methode wird nicht aufgerufenView
und überschreibenonDraw
undonTouch
dann zurücktrue
signal auf der Verbindung behandelt worden. Ich würde dann anrufeninvalidate()
von deronTouch
Methode. Das wird Ihnen erlauben, zu zeichnen, andere Elemente in dieonDraw
Methode, da es genannt werden, die durch andere Veranstaltungen.Das ist Ihre version mit fixes, damit es funktioniert: