动画效果

Posted hello word

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动画效果相关的知识,希望对你有一定的参考价值。

1. 透明动画 按钮透明

① 用代码控制

创建一个按钮

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="1">


    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/btnClickMe" />
</LinearLayout>
public class MainActivity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        this.findViewById(R.id.btnClickMe).setOnClickListener(new View.OnClickListener() { //按钮点击监听
            @Override
            public void onClick(View v) {
                // 透明动画 透明效果从 0->1
                AlphaAnimation aa = new AlphaAnimation(0, 1);
                aa.setDuration(1000);  // 时间设置 1s
                v.startAnimation(aa);  // 把按钮设置改动画
            }
        });
        System.out.println("onCreate");
    }
}

② 用 anim目录下面的xml配置文件来实现

在 res/anim/aa.xml

<?xml version="1.0" encoding="utf-8"?>

<!-- fromAlpha从0   toAlpha到1 duration时间1s-->
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromAlpha="0" 
    android:toAlpha="1"
    android:duration="1000"
    />
public class MainActivity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        this.findViewById(R.id.btnClickMe).setOnClickListener(new View.OnClickListener() { //按钮点击监听
            @Override
            public void onClick(View v) {
                /*// 透明动画 透明效果从 0->1
                AlphaAnimation aa = new AlphaAnimation(0, 1);
                aa.setDuration(1000);  // 时间设置 1s
                v.startAnimation(aa);  // 把按钮设置改动画*/
                
                // 用配置文件来实现
                v.startAnimation(AnimationUtils.loadAnimation(v.getContext(), R.anim.aa));
            }
        });
        System.out.println("onCreate");
    }
}

 

 

2. 旋转动画

 

视图界面 -- 一个按钮

 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="1">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/btnClickMe"
        android:layout_centerVertical="true"
        android:layout_alignParentStart="true" />

</RelativeLayout>

 

 

 

①直接使用java代码

 

public class MainActivity extends Activity{

    private RotateAnimation ra = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //ra = new RotateAnimation(0, 360); // 默认从0,0 旋转360度
        //ra = new RotateAnimation(0, 360 ,10, 10); // 从 10,10 旋转360度
        ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
        ra.setDuration(1000); //时间 1s

        this.findViewById(R.id.btnClickMe).setOnClickListener(new View.OnClickListener() { //按钮点击监听
            @Override
            public void onClick(View v) {
                v.startAnimation(ra);   //用代码

                
            }
        });
        System.out.println("onCreate");
    }
}

 

② 用配置文件 xml    /res/anim/rotate.xml

 

<?xml version="1.0" encoding="utf-8"?>
<rotate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:toDegrees="360"
    android:duration="1000"
    android:pivotX="50%"
    android:pivotY="50%"
     />

 

java代码

 

public class MainActivity extends Activity{

    private RotateAnimation ra = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        this.findViewById(R.id.btnClickMe).setOnClickListener(new View.OnClickListener() { //按钮点击监听
            @Override
            public void onClick(View v) {
                //用xml文件
                v.startAnimation(AnimationUtils.loadAnimation(v.getContext(), R.anim.rotate));
            }
        });
        System.out.println("onCreate");
    }
}

 

 

3. 移动动画

视图----- 一个按钮

 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="1">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/btnClickMe"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />

</RelativeLayout>

 

 

 

① 直接用java

 

public class MainActivity extends Activity{


    private TranslateAnimation ta = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ta = new TranslateAnimation(0, 200, 0, 200);  // x + 200  y+200
        ta.setDuration(1000);// 1s 时间

        this.findViewById(R.id.btnClickMe).setOnClickListener(new View.OnClickListener() { //按钮点击监听
            @Override
            public void onClick(View v) {
                v.startAnimation(ta);
            }
        });
        System.out.println("onCreate");
    }
}

 

② anim/translate.xml 文件

 

<?xml version="1.0" encoding="utf-8"?>
<translate android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="200"
    android:toYDelta="200"
    android:duration="1000"
    xmlns:android="http://schemas.android.com/apk/res/android" />

 

public class MainActivity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.findViewById(R.id.btnClickMe).setOnClickListener(new View.OnClickListener() { //按钮点击监听
            @Override
            public void onClick(View v) {
                // 调用配置文件 执行
                v.startAnimation(AnimationUtils.loadAnimation(v.getContext(), R.anim.translate));
            }
        });
        System.out.println("onCreate");
    }
}

 

以上是关于动画效果的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS动画

jQuery 将 div 切片成动画片段

VSCode自定义代码片段7——CSS动画

VSCode自定义代码片段7——CSS动画

使用嵌套片段和动画对象

撸一个拆红包动画