2016-02-17 14 views
-3

Как перенести координаты первого касания и сделать его постоянным. Я хочу нажать что-то на экране, а затем сделать постоянным на первом прикосновении, а затем хотите переместить еще один круг в постоянном круге одинКак получить первые координаты касания

ее код пытаюсь:

public class MainActivity extends Activity implements OnTouchListener { 
private float x; 
private float y; 
static float lasttouchx; 
static float lasttouchy; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    MyCustomPanel view = new MyCustomPanel(this); 

    ViewGroup.LayoutParams params = 
      new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT, 
        LayoutParams.FILL_PARENT); 
    addContentView(view, params); 
    view.setOnTouchListener(this); 

} 

private class MyCustomPanel extends View { 


    public MyCustomPanel(Context context) { 
     super(context); 

    } 
    @Override 
    public void draw(Canvas canvas) { 
     super.draw(canvas); 

     Paint paint = new Paint(); 
     paint.setColor(Color.BLACK); 




     paint.setStrokeWidth(5); 
     paint.setTextSize(50); 
     canvas.drawText(" X : " + (int) x + " Y : " + (int) y, canvas.getWidth() - 500, 200, paint); 
     paint.setStyle(Paint.Style.FILL); 

     if((x<=1000&& x>=18)&&(y<=1380&&y>=348)){ 
      paint.setColor(Color.BLUE); 
      canvas.drawCircle(x, y, 100, paint); 


      paint.setColor(Color.BLACK); 
      paint.setStyle(Paint.Style.STROKE); 
      paint.setStrokeWidth(20); 
      canvas.drawCircle(lasttouchx, lasttouchy, 500, paint); 


     } 
     else{} 




    } 
} 

@Override 
public boolean onTouch(View v, MotionEvent event) { 
    x = event.getX(); 
    y = event.getY(); 
    int action = event.getActionMasked(); 
    switch (action){ 
     case MotionEvent.ACTION_DOWN: 
      lasttouchx = event.getX(); 
      lasttouchy = event.getY(); 
      return false; 





    } 


    v.invalidate(); 
    return true; 
} 
} 
+2

Что вы пытались? – Sree

ответ

0

Override onTouchEvent(MotionEvent event), а затем вызвать event.getX() и event.getY(), чтобы получить координатные положения, в которых пользователь коснулся.

затем сохраните значение некоторой переменной.

теперь используйте эти значения, которые вы хотите, и попробуйте заменить на другой.

Проверить ответ на стек to get touch screen information answer