Android, helfen, sich drehende Bild auf dem touch
Ich versuche, drehen Sie eine transparente PNG-Bilder auf diesem Bild. Die Anzahl der Teil ist, was ich will, sich zu drehen. Ich bin in der Lage, dies zu tun, aber es ist nicht das, was ich versuche zu erreichen
http://i48.tinypic.com/25exzle.png
Ich will drehen die zahlen wie auf einem echten Zahlenschloss. So wird der Benutzer berühren und bewegen Sie Ihre finger in einem Kreis. Ich schaute auf weniger präzise Bild-rotation auf die touch - /move-Ereignisse, und Sie waren nicht ausreichend.
dies ist derzeit mein code
public boolean onTouch(View v, MotionEvent event) {
double r=Math.atan2(event.getX()-lockNumbers.getWidth(), lockNumbers.getHeight()-event.getY());
int rotation=(int)Math.toDegrees(r);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
x=event.getX();
y=event.getY();
updateRotation(rotation);
break;
case MotionEvent.ACTION_UP:
break;
}//switch
return true;
}//onTouch
private void updateRotation(double rot){
float newRot=new Float(rot);
Bitmap bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.numbers);
Matrix matrix=new Matrix();
matrix.postRotate(newRot,bitmap.getWidth(),bitmap.getHeight());
if(y>250){
Bitmap reDrawnBitmap=Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true);
lockNumbers.setImageBitmap(reDrawnBitmap);
}
else{
Bitmap reDrawnBitmap=Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true);
lockNumbers.setImageBitmap(reDrawnBitmap);
}
}
es auch passt die Größe der bitmap, wenn Sie es berühren, weil der matrix-parameter. Dies ist nicht die gewünschte Wirkung.
Dem Benutzer wird ziemlich viel benötigt, um in einem Kreis mit Ihrem finger.
InformationsquelleAutor CQM | 2012-07-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schreiben Sie folgenden code in Ihre touch-event.
Und verwenden Sie folgenden link für weitere Referenz.
Drehen Dialer Beispiel
InformationsquelleAutor Dipak Keshariya
Durch die Annahme @Dipak Keshariya ist Antwort, ich setze Weg, um zu bekommen, der Winkel der rotation, die Ihnen helfen können, identifizieren ausgewählte Teil des Rades.
InformationsquelleAutor dharam
Ich nehme an, Sie wollen, um ein Bild zu drehen, an dem Punkt, wo ein Benutzer den Bildschirm berührt? Wenn dem so ist, verlängern Sie die
SimpleOnGestureListener
wie in diesem Beispiel:Sobald Sie haben die Bildschirm-Koordinaten des touch-event, konnte Sie eine Rotations-Animation über die Punkt - siehe hier für mehr details: http://developer.android.com/guide/topics/graphics/2d-graphics.html
InformationsquelleAutor Anand M Joseph