2012-04-23 16 views
0

私はonTouchListener()を通してイメージを回転する機能を実装する必要があります。画像を回転するサンプルコードを入力してください。私を助けてください。onTouchListenerで画像を回転させる方法は?

ありがとうございました。

答えて

0

画像を回転させるサンプルコードです。あなたは、 "トゥイーンアニメーション" のタイプでXMLを使用する必要が

public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.main); 

baseView = (View) findViewById(R.id.baseView); 
turntable = (ImageView) findViewById(R.id.turntable); 

turntable.setOnTouchListener(onTableTouched); 
baseView.setOnTouchListener(onTableTouched); 

}

public android.view.View.OnTouchListener onTableTouched = new android.view.View.OnTouchListener() { 
public boolean onTouch(View v, MotionEvent evt) { 
    double r = Math.atan2(evt.getX() - turntable.getWidth()/2, 
      (turntable.getHeight()/2) - evt.getY()); 
    int rotation = (int) Math.toDegrees(r); 
    Log.i("R is ", ""+r); 
    if (evt.getAction() == MotionEvent.ACTION_DOWN) { 
    } 

    if (evt.getAction() == MotionEvent.ACTION_MOVE) { 
     x= evt.getX(); 
     y= evt.getY(); 
     updateRotation(rotation); 
    } 

    if (evt.getAction() == MotionEvent.ACTION_UP) { 
      // 
    } 
    return true; 
} 
}; 
private void updateRotation(double rot) { 
float newRot = new Float(rot); 
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), 
R.drawable.orsl_circle_transparent); 
Matrix matrix = new Matrix(); 
//  matrix.setTranslate(getWindowManager().getDefaultDisplay().getWidth()/2,   getWindowManager().getDefaultDisplay().getHeight()); 
    matrix.postRotate(newRot,bitmap.getWidth()/2,bitmap.getHeight()/2); 
//  matrix.setSinCos(newRot, newRot/2, 100, 100); 
//  matrix.postRotate(newRot); 
    Log.i("THE ROATTION ", " "+ newRot); 

if(y>250) 
{ 
    Bitmap redrawnBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap 
      .getWidth(), bitmap.getHeight(), matrix, true); 
    turntable.setImageBitmap(redrawnBitmap); 
}else 
{ 
    Bitmap redrawnBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap 
      .getWidth(), bitmap.getHeight(), matrix, true); 
    turntable.setImageBitmap(redrawnBitmap); 
    Log.i("GUITAR _IMAGE", ""); 
} 
} 
+0

このコードでは、画像は回転していますが、その位置も変わります。 – Rajesh

0

。 より、Javaコードから、このXMLに合わせてビューを動作させることができます。 こちらのリンクは次のとおりです。 http://www.edumobile.org/android/android-beginner-tutorials/tween-animation/

+0

こんにちはRoiberg、私はこのイメージをonTouch()の方向に基づいて回転したいと思います。この回転イメージをボリュームコントローラーに使用する必要があります。ですから、これをonTouch Listenerを通して回転させる必要があります。 xmlファイルで使用すると、onTouchコントロールは実行されません。お返事をありがとうございます。 – Rajesh

関連する問題