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

Schreibe einen Kommentar