让android动画SMOOTH

时间:2017-05-04 06:25:52

标签: android android-studio animation

我正在使用一些动画进行启动。

背景图像(640x425,58.4KB,JPG)在1500ms内略微缩放,

和另一张图像(300x300,20.3KB,PNG)在等待750ms后的750ms内逐渐消失。

第一次跑步时,动画很流畅。

但是,如果你重复执行,那么动画会很迟钝。

我的手机是三星GALAXY Note 5.

这是我的代码。

AndroidMenifest.xml

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

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <activity
        android:name=".SplashActivity"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
    </activity>
</application>
</manifest>

SplashAcivity.java

import android.animation.ObjectAnimator;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.SystemClock;
import android.support.annotation.Nullable;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.ViewPropertyAnimator;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class SplashActivity extends AppCompatActivity {
    private final String TAG = SplashActivity.class.getSimpleName();

    private Animation zoom_in;
    private Animation fade_in;

    private ImageView splashBackground;
    private ImageView CI;


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

        zoom_in = AnimationUtils.loadAnimation(this, R.anim.zoom_in);
        fade_in = AnimationUtils.loadAnimation(this, R.anim.fade_in);

        splashBackground = (ImageView) findViewById(R.id.splashBackground);
        CI = (ImageView) findViewById(R.id.CI);

    }

    @Override
    protected void onStart() {
        super.onStart();

        splashBackground.startAnimation(zoom_in);
        CI.startAnimation(fade_in);
    }
}

fade_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true">
    <alpha
        android:startOffset="750"
        android:duration="750"
        android:fromAlpha="0"
        android:toAlpha="1"/>
</set>

zoom_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true">
    <scale
        android:duration="@integer/splash_animation_duration"
        android:pivotX="50%"
        android:pivotY="50%"
        android:fromXScale="1"
        android:fromYScale="1"
        android:toXScale="1.05"
        android:toYScale="1.05" />
</set>

1 个答案:

答案 0 :(得分:0)

让你的持续时间小于750.只需将它设为300。