android怎么实现图片旋转
发布网友
发布时间:2022-05-03 12:22
我来回答
共2个回答
热心网友
时间:2022-06-20 00:20
可以使用RotateAnimation动画实现,设定无限循环即可
代码如下
public class MyActivity extends Activity {
ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);
iv = (ImageView)findViewById(R.id.image);
RotateAnimation animation = new RotateAnimation(0, 360);
animation.setDuration(100000);//设定转一圈的时间
animation.setRepeatCount(Animation.INFINITE);//设定无限循环
animation.setRepeatMode(Animation.RESTART);
iv.startAnimation(animation);
}
}
也可以自定义view继承于imageview,启动一个线程,在while循环里设置view的旋转角度
public class RotateView extends ImageView implements Runnable {
private float mCurDegree = 0;//当前旋转角度
public RotateView(Context context, AttributeSet attrs) {
super(context, attrs);
new Thread(this).start();
}
@Override
protected void onLayout(boolean changed, int left, int top, int right,
int bottom) {
super.onLayout(changed, left, top, right, bottom);
//设定旋转中心
setPivotX(getMeasuredWidth()/2);
setPivotY(getMeasuredHeight()/2);
}
@Override
public void run() {
while(true){
setRotation(mCurDegree);
mCurDegree += 5;
postInvalidate();
SystemClock.sleep(16);
}
}
}
在布局文件里使用RotateView代替imageview即可
热心网友
时间:2022-06-20 00:20
matrix.setRotate(-90); // 这里的角度你可以根据需要设置
Bitmap bm1 = Bitmap.createBitmap(bm, 0, 0, bmWidth, bmHeight, matrix, true);
mImageView.setImageBitmap(bm1);
mImageView.setScaleType(ScaleType.FIT_XY); //这个是让图片适应屏幕大小,但是不是按比例缩放的.
你试试!追问我是想让他一直旋转。实现一个地球转动的效果。这个是静态的只转了某一个角度吧
追答那你可以试试在一个死循环中让图片不断改变角度,比如在循环中设置 每次循环旋转90度.