0

onTouchListener() を介して画像を回転させる機能を実装する必要があります。画像を回転させるサンプルコードを教えてください。私を助けてください。

前もって感謝します。

4

2 に答える 2

0

画像を回転させるためのサンプルコードを次に示します。

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", "");
}
}
于 2012-04-23T09:33:08.977 に答える
0

「トゥイーンアニメーション」のタイプでxmlを使用する必要があります。それよりも、Java コードから、この xml に従ってビューを動作させることができます。ここに役立つリンクがあります: http://www.edumobile.org/android/android-beginner-tutorials/tween-animation/

于 2012-04-23T09:35:17.027 に答える