Ich habe einige benutzerdefinierte Ansicht mit onTouchEvent, wo ich mX und mY einstellen.Wie bekomme ich Koordinaten von der benutzerdefinierten Ansicht Android
mx=event.getX();
my=event.getY();
dies ist für den Ziehweg von Berührungsereignis bekommen - das Arbeiten groß, und ich kann die Koordinaten in meiner Textansicht sehen, die in der Haupttätigkeit definiert ist.
Ich möchte dieses Bild 2 Attribut in meiner Haupttätigkeit Layout zur Einstellung der Hintergrundfarbe zum Beispiel
if (mx > 1000 && my > 100){
set color
}
verwenden, aber es scheint, dass mx und my bekommt keine Werte was habe ich versuchte, ist
vielleicht habe ich das getmx nicht korrekt in der benutzerdefinierten Ansicht definiert?
public float getmx(){
return mx;
}
Ich bin neu in Java und Android so einfach sein mit mir :)
MainActiviy hinzufügen.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Drawing - custom view
drawView = (Drawing) findViewById(R.id.drawing);
findCoordinates();
TextView Coordinates = (TextView) findViewById(R.id.CNcoordinates);
//Coordinates - message with coordinates
paintView.setTextView(Coordinates);
}
private Drawing drawView;
public void findCoordinates() {
Drawing paintView = (Drawing) findViewById(R.id.drawing);
float xX = drawView.getmX();
float yY = drawView.getmY();
int nColor = Color.BLUE;
View buttonmove1 = findViewById(R.id.layoutMove);
if (Math.abs(xX) > 1000 && Math.abs(yY) > 1000) {
buttonmove1.setBackgroundColor(nColor);
}
}
die Koordinaten kommen aus:
protected void onDraw(Canvas canvas) {
canvas.drawBitmap(canvasBitmap, 0, 0, canvasPaint);
canvas.drawPath(drawPath, drawPaint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
mX = event.getX();
mY = event.getY();
View buttonmove = findViewById(R.id.drawing);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
drawPath.moveTo(mX, mY);
if(myCoordinates!=null){
myCoordinates.setText(":" + mX + " , " + ":" + mY);
}
break;
public void setTextView(TextView tv){
myCoordinates = tv;
}
Von wo Sie x, y-Koordinaten zu erhalten versuchen? In onCreate()? – Rahul
in MainActivity.java im setzen sie in onTouchEvents auf custom_view. – user7258123
Canvas Zeichnung in benutzerdefinierte Ansicht – user7258123