首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android - RotateAnimation - fromDegrees toDegrees变量

Android - RotateAnimation - fromDegrees toDegrees变量
EN

Stack Overflow用户
提问于 2012-10-05 15:41:28
回答 5查看 5.3K关注 0票数 3

我是Android的新手,我有一个小问题。我找到了RotateAnimation的代码:

存储RotateAnimation所有数据的xml文件:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator">
    <rotate
        android:fromDegrees="0"
        android:toDegrees="360"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="20000"
        android:startOffset="0"/>
</set>

java文件:

代码语言:javascript
复制
package com.example.helloword;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;

public class Rotation_test extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_rotation_test);
//        getActionBar().setDisplayHomeAsUpEnabled(true);


        Button buttonRotateCenter = (Button) findViewById(R.id.rotatecenter);
        final ImageView floatingImage = (ImageView) findViewById(R.id.floatingimage);


        final Animation animationRotateCenter = AnimationUtils.loadAnimation(
                this, R.anim.rotate_center);
        buttonRotateCenter.setOnClickListener(new Button.OnClickListener() {

            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                floatingImage.startAnimation(animationRotateCenter);
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_rotation_test, menu);
        return true;
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                NavUtils.navigateUpFromSameTask(this);
                return true;
        }
        return super.onOptionsItemSelected(item);
    }

}

如何在xml文件中创建这两个值的变量?

代码语言:javascript
复制
    android:fromDegrees="0"
    android:toDegrees="360"
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-10-05 16:16:43

根据RotateAnimation类参考(http://developer.android.com/reference/android/view/animation/RotateAnimation.html),该类不为fromDegrees和toDegrees提供setter方法。因此,如果需要在代码中设置这些值,则必须在代码中创建RotateAnimation对象,并将fromDegrees和toDegrees值传递给构造函数。

代码语言:javascript
复制
RotateAnimation rotateAnimation = new RotateAnimation(fromDegrees, toDegrees);
票数 3
EN

Stack Overflow用户

发布于 2012-10-05 15:55:21

尝试以下代码,它可能会起作用:

代码语言:javascript
复制
       <?xml version="1.0" encoding="utf-8"?>
        <rotate
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromDegrees="45"
        android:toDegrees="45"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="0"
        android:startOffset="0"
        />

主代码:

代码语言:javascript
复制
  Animation rotation = AnimationUtils.loadAnimation(this, R.anim.rotation);
    myView.startAnimation(rotation);
票数 0
EN

Stack Overflow用户

发布于 2012-10-05 15:56:11

试试另一个:

代码语言:javascript
复制
     Matrix matrix=new Matrix();
 imageView.setScaleType(ScaleType.MATRIX);   //required
 matrix.postRotate((float) angle, pivX, pivY);
 imagView.setImageMatrix(matrix);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12741753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档