导语:今日做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>