android怎么实现图片旋转
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android怎么实现图片旋转相关的知识,希望对你有一定的参考价值。
就是我现在有一个imageView里边放着一个地球的图。我想打开应用的时候地球自动旋转,请问怎么实现。我试着用了matrix没实现。
而且我的地球右边有一部分是超出屏幕外的。如图。
可以使用RotateAnimation动画实现,设定无限循环即可
代码如下
public class MyActivity extends ActivityImageView 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即可
Bitmap bm1 = Bitmap.createBitmap(bm, 0, 0, bmWidth, bmHeight, matrix, true);
mImageView.setImageBitmap(bm1);
mImageView.setScaleType(ScaleType.FIT_XY); //这个是让图片适应屏幕大小,但是不是按比例缩放的.
你试试!追问
我是想让他一直旋转。实现一个地球转动的效果。这个是静态的只转了某一个角度吧
追答那你可以试试在一个死循环中让图片不断改变角度,比如在循环中设置 每次循环旋转90度.
本回答被提问者和网友采纳以上是关于android怎么实现图片旋转的主要内容,如果未能解决你的问题,请参考以下文章