2012-03-29 7 views
0

Ich möchte herausfinden, wie ich Touch-Koordinaten, die ich in Float-Form bekomme, in eine ganze Zahl umwandeln kann. Ich bin ziemlich neu in Java-Programmierung und Android. Ich möchte ein Rechteck um mein Touch-Bereich definieren und dann so etwas wie folgt verwenden:Wie konvertiert man Touch-Koordinaten von Float in int?

Rect touchArea = new Rect(); //I have only float coordinates to define this rect 
    Rect predefinedRect = new Rect(); //This rect is defined with integers 
    if(touchArea.intersect(predefinedRect)){ 
     //do something 
    } 

Auch gibt es keine Methode, wie Rect (RecF), zumindest habe ich nicht eine gefunden. Also was könnte ich tun, um diese .intersect() Methode zu benutzen?

Antwort

0

Es gibt einen RectF Konstruktor zu haben, die eine Rect nimmt . Also könnten Sie das verwenden und dann den Schnittpunkt in der RectF-Klasse verwenden.

Wenn Sie float konvertieren möchten Sie gerade in int könnte

int i = (int)1.5; 
// i = 1 

tun, aber seien Sie vorsichtig mit, wie der Schwimmer gerade geschnitten wird und nicht abgerundet.

+0

Ok, dann wie funktioniert Androids Koordinatensystem aussieht? Wie ich verstehe, ist die Mitte des Bildschirms (0,0) und dann geht es nach allen Seiten zu 1. Liege ich falsch? –

+0

Sorry, aber ich kenne die Antwort auf deine letzten Fragen nicht. Und das ist nicht wirklich ein Forum, also sollten Sie keine unzusammenhängenden Fragen in den Kommentaren stellen. Wenn Sie die Antwort wirklich nicht finden können (aber Sie werden), schreiben Sie eine andere Frage. – softarn

+0

Und wenn diese Antwort richtig ist, markieren Sie sie als die richtige Antwort. – softarn

0

Wenn Sie den ganzzahligen Teil eines Schwimmers zu bekommen versuchen, können Sie werfen wie:

float a = 1.2; 
int b = (int) a; 

dies b machen den Wert 1.

0

Wenn Sie es abzurunden müssen, was Sie wahrscheinlich sollte, da Sie über Touch-Koordinaten sprechen, sollten Sie Math.Round() verwenden