使用Android中的不同图像将对象旋转360度?

时间:2013-04-19 07:53:11

标签: java android rotation image-rotation

我正在创建一个Android应用程序,将Car的图像旋转360度。 我想用相同对象的不同图像文件(例如Car)旋转对象

以下是我想在我的应用中实现的Example

在Android中旋转对象时是否可以使用不同的图像?

是否有可用的API或类?

这是我的安卓代码 -

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
public class MainActivity extends Activity implements OnTouchListener {

private ImageView dialer;
private float y=0;
public boolean onTouch(View v, MotionEvent event) {
    double r=Math.atan2(event.getX()-dialer.getWidth()/2, dialer.getHeight()/2-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.round_button_big);
    Matrix matrix=new Matrix();
    matrix.postRotate(newRot,bitmap.getWidth()/2,bitmap.getHeight()/2);
    if(y>250){
        Bitmap reDrawnBitmap=Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true);
        dialer.setImageBitmap(reDrawnBitmap);
    }
    else{
        Bitmap reDrawnBitmap=Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true);
        dialer.setImageBitmap(reDrawnBitmap);
    }
}
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    dialer = (ImageView) findViewById(R.id.imageView1);
    dialer.setOnTouchListener(this);
    }//onCreate

}

1 个答案:

答案 0 :(得分:2)

如果您有来自汽车不同角度的X张照片,则只需要在想要更改ImageView时收听onTouch。

我建议您使用LevelListDrawable并使用setImageLevel顺利浏览它们。