您好,欢迎访问梧州市海静科技有限公司

Android ImageView实现图片由快到慢旋转动画

发布日期:2021年08月23日     浏览次数:1769
导语:今日做Android的欢迎页面Activity,需要用到动画技术,让公司的logo旋转,形成动画效果。

开始用的是Android的RotateAnimation,后来发现要实现由快到慢不太好用。于是自己写了一段代码来实现。

今日做Android的欢迎页面Activity,需要用到动画技术,让公司的logo旋转,形成动画效果。

开始用的是Android的RotateAnimation,后来发现要实现由快到慢不太好用。于是自己写了一段代码来实现。

代码如下:

package com.example.administrator.tetris;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.ImageView;

public class WelcomeActivity extends Activity {
    String TAG="WelcomeActivity";
    ImageView iv_logo;
    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            if(msg.what==1){
                Intent intent=new Intent(WelcomeActivity.this,MainActivity.class);
                WelcomeActivity.this.startActivity(intent);
                WelcomeActivity.this.finish();
            }else if(msg.what==2){
                Log.i(TAG,"Rotation="+msg.arg1);
                iv_logo.setRotation(msg.arg1);
            }
            super.handleMessage(msg);
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_welcome);
        iv_logo=(ImageView)findViewById(R.id.iv_logo);      

        Thread thread=new Thread(){
            @Override
            public void run() {
                super.run();
                //handler.sendEmptyMessageDelayed(1,5000);
                for(int i=0;i<=360*5;i++){
                    try {
                        Thread.sleep(1);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    Message msg=new Message();
                    msg.what=2;
                    msg.arg1=i*2;
                    handler.sendMessage(msg);
                }
                for(int i=0;i<=432;i++){
                    try {
                        Thread.sleep(i/20);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    Message msg=new Message();
                    msg.what=2;
                    msg.arg1=i*5;
                    handler.sendMessage(msg);
                }
                handler.sendEmptyMessageDelayed(1,2000);
            }
        };
        thread.start();
    }
}

xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.administrator.tetris.WelcomeActivity">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:gravity="center"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/iv_logo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="30dp"
            android:src="@drawable/haijingtech" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="30dp"
            android:textColor="#000"
            android:textSize="21sp"
            android:text="@string/auth"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#000"
            android:text="@string/auth_en"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#000"
            android:text="@string/production"/>
    </LinearLayout>


</RelativeLayout>

 


提交新评论