android 启动页_Android studio启动页

599628d5f4263c1cd51eac2deea8dd94.png

问题:怎么样自己制作的软件可以像其它已经发布软件一样,可以在开启软件的时候有动画,我简单制作了一个启动页,供给大家学习。

启动页有四种方案
第一种属性动画(ObjectAnimator)
第二种补间动画(例如:TranslateAnimation(位移)、ScaleAnimation(缩放)、AlphaAnimation(透明度)、RotateAnimation(旋转))
第三种采用定时器(Timer)
第四种Handler + Thread实现

这里我是使用ObjectAnimator属性动画来写的,你们也可以不用这种方式来写。如果你想了解其它的方案,可以去这篇文章看:

https://blog.csdn.net/wyh_file/article/details/79102690

好我们开始看代码:
首先是我们的Launch.java(我用了两种写法来写ObjectAnomator的监听事件,一种是一般方法,另外是用适配器写的来提供大家参考)

public class Launch extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView()来绑定我们的布局
setContentView(R.layout.activity_launch);
//启动页有四种方案
//第一种属性动画(ObjectAnimator)
//第二种补间动画(例如:TranslateAnimation(位移)、ScaleAnimation(缩放)、AlphaAnimation(透明度)、RotateAnimation(旋转))
//第三种采用定时器(Timer)
//第四种Handler + Thread实现
//这里使用第一种方案:ObjectAnimator
//这里的第一个参数target的意思是:你想要对哪个视图(View)绑定动画---这里我是对ImageView绑定动画
View target = findViewById(R.id.iv_view);
//这里的第二个参数propertyName的意思是:你想要对动画执行什么操作---动画的属性(这里的操作执行缩放)
//这里的第三个参数的意思是:缩放的尺寸范围(从0.0到1.0之间)
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(target, "scaleX", 0.0f, 1.0f);
//设置动画的执行的时间(企业级开发的标准一般为2到3秒)
//setDuration()函数的意思设置动画的执行时间,这里设置的为2秒
objectAnimator.setDuration(2000);
//启动动画
objectAnimator.start();
//这里启动了动画后我们就要跳转到下个界面
//因此我们就要给objectAnimator写一个监听事件
//如果用一般的方法写监听事件会比较浪费接口的利用率,因此我们这里用适配器来写监听事件
/*
//首先我们用一般的方法写
objectAnimator.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {
}
@Override
//这里我们就写我们结束了动画执行了,然后就跳转界面
public void onAnimationEnd(Animator animator) {
startActivity(new Intent(Launch.this, MainActivity.class));
finish();
}
@Override
public void onAnimationCancel(Animator animator) {
}
@Override
public void onAnimationRepeat(Animator animator) {
}
});*/
//这里我们用适配器来写
objectAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationCancel(animation);
startActivity(new Intent(Launch.this, MainActivity.class));
finish();
}
});
}
}

MainActivity.java(这个文件是只创建一个空白的文件,作用只是给大家更加直观的体验动画效果)

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

}

然后就是我们的布局文件:

activity_launch.xml(这里只用一个ImageView的控件)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/activity_launch"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="com.example.a25944.myapplication.Launch">

<ImageView

android:id="@+id/iv_view"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:src="@drawable/baibudejie"/>

</RelativeLayout>

activity_main.xml(这里只是一个空白布局)

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/activity_main"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="com.example.a25944.myapplication.MainActivity">

</RelativeLayout>

最后我给大家把清单文件也列出来了,因为你可以到本文章前面讲Launch.java时提到硬件加速,以此我们来解释一下

AndroidManifest.xml

<application

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:supportsRtl="true"

android:theme="@style/AppTheme">

<!--我们要关掉硬件加速-->

<!-- 因为系统默认的硬件加速是开启的状态,如果是开启的状态会导致我们的动画缓存释放掉了-->

<!-- 解释一下什么是硬件加速-->

<!-- 硬件加速的意思是:可以理解为释放缓存,是我们的软件运行的速度变得快一些-->

<!-- 所以当我们的动画的缓存很大的时候,我们开启硬件加速会导致我们的动画缓存被释放-->

<!-- 这里我的图片占用的内存不是很大,所以我把硬件加速打开或者关闭都没有影响-->

<!-- 但你的动画占用的内存很大的时候,要来关闭硬件加速,因为硬件加速对动画内存有要求的-->

<!-- 所以你没有关硬件加速,你会看不到动画-->

<!-- hardwareAccelerated是用来开启或者关闭硬件加速-->

<!-- 这里我还是写了hardwareAccelerated来关闭硬件加速-->

<activity android:name=".Launch"

android:hardwareAccelerated="false">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

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

</intent-filter>

</activity>

<activity android:name=".MainActivity"></activity>

</application>

最终的结果演示:

a07f5a2cc712554d58cd4e6ad48d0040.png
启动页https://www.zhihu.com/video/1182267544186109952
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值