Android 透明度、旋转、缩放、平移

补间动画一共分为4种

1 alpha  透明度
2 rotate  旋转
3 scale   缩放
4 translate  平移

一 alpha 透明度

1 步骤

step1 创建动画文件
    res 文件夹下创建文件夹,在此new一个animation resource file
    <alpha> 透明度标签
        fromAlpha toAlpha:透明度从哪到哪 (0 表示完全透明,1 表示完全不透明)
        duration:总共花费多少毫秒的时间
        
step2 xml文件
    <ImageView>

step3 java文件
    1 点击图片时,获取动画 (anim是创建的文件夹,alpha是动画文件的名字)
    Animation animation = AnimationUtils.loadAnimation(MainActivity.this,R.anim.alpha);
    2 把动画设置到图片上
    imageView.startAnimation(animation);

2 代码

alpha.xml

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

    <alpha android:fromAlpha="0"
        android:toAlpha="1"
        android:duration="2000"
        />
</set>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <ImageView
        android:id="@+id/pic"
        android:src="@drawable/big"
        android:adjustViewBounds="true"
        android:maxHeight="400dp"
        android:maxWidth="200dp"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </ImageView>


</RelativeLayout>

MainActivity.java

package com.example.myanimbujian;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {
    ImageView imageView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView= findViewById(R.id.pic);
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                //获取动画
                Animation animation = AnimationUtils.loadAnimation(MainActivity.this,R.anim.alpha);
                //把动画设置到图片上
                imageView.startAnimation(animation);
            }
        });
    }
}

二 rotate 旋转

1 步骤

step1 创建动画文件
    res 文件夹下创建文件夹,在此new一个animation resource file
    <rotate> 旋转标签
        fromDegrees toDegrees:从哪一个角度开始到哪一个角度
        pivotX pivotY:旋转的支点(百分比)
        duration:总共花费多少毫秒的时间
        
step2 xml文件
    <ImageView>

step3 java文件
    1 点击图片时,通过动画文件获取到动画(anim是创建的文件夹,rotate是动画文件的名字)
    Animation animation = AnimationUtils.loadAnimation(MainActivity.this,R.anim.rotate);
    2 把动画设置到图片上
    imageView.startAnimation(animation);
    

2 代码

rotate.xml

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

activity_main.xml 和 java 的代码同 alpha 透明度 (改一下java文件里动画文件名字)

效果

三  scale 缩放

1 步骤

step1 创建动画文件
    res 文件夹下创建文件夹,在此new一个animation resource file
    <scale> 旋转标签
        fromXScale fromYScale:从多少倍开始缩放
        toXScale toYScale:到多少倍缩放结束
        pivotX pivotY:旋转的支点(百分比)
        duration:总共花费多少毫秒的时间
        
step2 xml文件
    <ImageView>

step3 java文件
    1 点击图片时,通过动画文件获取到动画(anim是创建的文件夹,scale是动画文件的名字)
    Animation animation = AnimationUtils.loadAnimation(MainActivity.this,R.anim.scale);
    2 把动画设置到图片上
    imageView.startAnimation(animation);


2 代码

scale.xml

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

    <scale
        android:fromXScale="1"
        android:fromYScale="1"
        android:toXScale="2"
        android:toYScale="0.5"
        android:pivotY="50%"
        android:pivotX="20%"
        android:duration="2000"
        />
</set>

activity_main.xml 和 java 的代码同 alpha 透明度 (改一下java文件里动画文件名字)

效果

 四  translate 平移

1 步骤

step1 创建动画文件
    res 文件夹下创建文件夹,在此new一个animation resource file
    <translate> 旋转标签
        fromXDelta fromXDelta:从哪开始平移
        toXDelta toXDelta:到哪结束平移
        duration:总共花费多少毫秒的时间
        
step2 xml文件
    <ImageView>

step3 java文件
    1 点击图片时,通过动画文件获取到动画(anim是创建的文件夹,translate是动画文件的名字)
    Animation animation = AnimationUtils.loadAnimation(MainActivity.this,R.anim.translate);
    2 把动画设置到图片上
    imageView.startAnimation(animation);


 2 代码

translate.xml

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

</set>

activity_main.xml 和 java 的代码同 alpha 透明度 (改一下java文件里动画文件名字)

效果 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值