简单的ImageView旋转

时间:2013-07-22 23:51:40

标签: android rotation imageview

我正在使用此xml代码将imageVeiw旋转180度:

<ImageView
    android:id="@+id/keyP2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/btn4"
    android:layout_centerHorizontal="true"
    android:adjustViewBounds="true"
    android:rotation="180"
    android:maxWidth="125dp"
    android:scaleType="fitCenter"
    android:src="@drawable/image0_key" />

这适用于android api版本11及以上,但api 11下不支持android:rotation="180"。如何将imageView旋转180度以下11?

2 个答案:

答案 0 :(得分:5)

试试这个。它适合我。

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator" >

  <rotate
      android:duration="2000"
      android:fromDegrees="0"
      android:pivotX="50%"
      android:pivotY="50%"
      android:toDegrees="360" >
  </rotate>

</set>

将此文件保存在名为“anim”的文件夹下的资源中。

  

RES /动画/ rotate.xml

在您的活动中。添加此代码。

    Animation sampleFadeAnimation = AnimationUtils.loadAnimation(PreviewImageActivity.this,R.anim.rotate);
    sampleFadeAnimation.setRepeatCount(1);
    yourImageView.startAnimation(sampleFadeAnimation);

做一些研究,你会得到许多属性来改善这个旋转动画。

感谢...

答案 1 :(得分:0)

您可能希望通过扩展动画以编程方式尝试。我最喜欢的东西是:

RotateAnimation rotateAnim = new RotateAnimation(0f, 350f, 15f, 15f);
rotateAnim.setInterpolator(new LinearInterpolator());
rotateAnim.setRepeatCount(Animation.INFINITE);
rotateAnim.setDuration(700);

// Start the animation
final ImageView imgView = (ImageView) findViewById(R.id.YOUR_ID);
imgView.startAnimation(rotateAnim);

// Stop when necessary
imgView.setAnimation(null);

虽然我不完全确定在11之前是否支持RotateAnimation。但是你应该能够以编程方式完成它。

修改:有关其他选项,请参阅Android Rotatable ImageView