1

「カーソル」を作成するクラスは次のとおりです。

public class Ball extends View {
private final float x;
    private final float y;
    private final int r;
    private final Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);

    public Ball(Context context, float x, float y, int r) {
        super(context);
        mPaint.setColor(0xFFFF0000);
        this.x = x;
        this.y = y;
        this.r = r;
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        canvas.drawCircle(x, y, r, mPaint);

    }


}

そして、これを機能させるために私がやろうとしている私のスイッチ/ケースです。

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);     

        setContentView(R.layout.activity_main);

        FrameLayout main = (FrameLayout) findViewById(R.id.main_view);

        final TextView textView = (TextView)findViewById(R.id.textView);
        final View touchView = (View) findViewById(R.id.touchView);


        main.setOnTouchListener(new View.OnTouchListener() {

            Ball ball; 


            @Override
            public boolean onTouch(View v, MotionEvent event) {
               int eventAction = event.getAction();

               textView.setText(String.valueOf("  Azimuth: " + -1*(Math.round((event.getX()/13.33333333)-30)))
                         + "\n  Elevation: " + String.valueOf(-1*(Math.round((event.getY()/18.33333333)-30))));
               float x = event.getX();
               float y = event.getY();
               FrameLayout flView = (FrameLayout) v;
               //This creates a ton of circles. I just want one to appear and then go away. 
               //flView.addView(ball);


               switch(eventAction){

                    case MotionEvent.ACTION_DOWN:
                        ball = new Ball(findViewById(R.id.main_view).getContext(), x, y, 5);
                        flView.addView(ball);
                        break;



                    case MotionEvent.ACTION_UP:
                        flView.removeView(ball);       
                        break;

                    case MotionEvent.ACTION_MOVE:
                        ball = null; 
                        break;

               }


               return true;
            }
        });
    }

基本的には画面をタッチするとボール/円/カーソルを作成できますが、別の場所をクリックすると削除して別のものを作成したいです。新しいボール/円/カーソルを一度に1つずつ生成し続けることができるため、可能であれば前のものを削除する方法を見つけようとしています。

4

0 に答える 0