如何获得动画视图

时间:2013-06-05 04:24:32

标签: android animation view

这里是xml文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="150dp"
android:layout_height="match_parent">

<Button
   android:id="@+id/textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />

这是java代码

private Button text;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    text = (Button)findViewById(R.id.textview);
    text.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            text.startAnimation(getScaleAnimation());

        }
    });
}

    private ScaleAnimation getScaleAnimation(){
    ScaleAnimation animation = new ScaleAnimation(1f,1.2f,1f,1.2f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
    animation.setDuration(1000);
    animation.setFillAfter(true);
    return animation;
}

我在Button上执行简单的ScaleAnimation。有什么方法可以获得动画视图吗?

2 个答案:

答案 0 :(得分:3)

只需在anim文件夹中打开res文件夹即可。创建xml文件。然后,您需要创建set标记。在其中,您可以创建scale标记。

以下是一个例子:

<?xml version="1.0" encoding="utf-8"?>
<set  xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">

<scale  
    android:fromXScale="0.5"
    android:toXScale="2"
    android:fromYScale="0.5"
    android:toYScale="2"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="5000"

    />

</set>

注意:不要忘记包含xmlns:android声明。

现在,在onCreate方法内或您想要的任何地方,只需放下即可。点击它时,我正在动画(缩放)一个按钮:

    Button but = (Button) findViewById(R.id.button1);
    but.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Animation anim = AnimationUtils.loadAnimation(AnimationActivity.this, R.anim.animation);
            but.startAnimation(anim);
    }
});

修改 如果您想在缩放时旋转它,可以将以下内容放在xml文件中:

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

希望这有帮助。

答案 1 :(得分:0)

使用这种方式

/res/anim文件夹中创建一个xml,并将以下代码放入其中。

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="schemas.android.com/apk/res/android"
              android:interpolator="@android:anim/linear_interpolator">

       <scale android:fromXScale="0.0" android:fromYScale="0.0"
              android:toXScale="1.0" android:toYScale="1.0" 
              android:duration="700" android:fillBefore="false" />

</set>

将以下代码放在java文件中:

Animation scaleAnimation 
           = AnimationUtils.loadAnimation(this, R.anim.logoanimation); 
Btn.startAnimation(scaleAnimation);

logoanimation是我的动画xml文件的名称。

有关详情,请参阅此tutorial