当前位置:   article > 正文

Android :为你的启动页面SplashActivity 添加动画的几种方法_android studio app 启动页图标 splash默认是转的一个动态图怎么设置

android studio app 启动页图标 splash默认是转的一个动态图怎么设置


  启动页一般都会放一张默认的图片,有登陆的时候,登录成功进入主界面,不需要登录的时候,一般2-3s进入主页面,在等待的期间为了平滑的过度可以加入动画,体验会更好一点。

关于动画,必看的博客:

Android属性动画完全解析(上),初识属性动画的基本用法

总共三篇,细细的读一遍,做一遍,属性动画就算入门了。

下图就展示了启动页SplashActivity 动画Gif展示:



1,Drawable 动画测试

假设这张图片是放在drawable目录下的,

  ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(imageView,"alpha",0.6f,1.0f);
  1. imageView.setImageResource(R.drawable.ic_splash);
  2. //动画时长
  3. objectAnimator.setDuration(2500);
  4. objectAnimator.start();

这样一张图片的不透明度从0.6-1.0,就像上图展示的,但是这种方式不够好,每次都是硬塞进去一个Drawable,我们可以通过缓存框架加载。


2,Drawable GLIDE 加载测试

添加依赖:
  compile 'com.github.bumptech.glide:glide:3.7.0'
注册网络权限:
 <uses-permission android:name="android.permission.INTERNET"/>
Glide.with(this).load(R.drawable.ic_splash).diskCacheStrategy(DiskCacheStrategy.ALL).crossFade(2500).into(imageView);

这样的效果和上面一样,但是!动画只会加载一次,因为缓存的原因,解决方案有两个:
(1),不缓存
 Glide.with(this).load(R.drawable.ic_splash).skipMemoryCache(true).crossFade(2500).into(imageView);
(2),不用Glide 加载动画

  1. Glide.with(this).load(R.drawable.ic_splash).diskCacheStrategy(DiskCacheStrategy.ALL). into(imageView);
  2. objectAnimator.setDuration(2500);
  3. objectAnimator.start();

这里推荐第二个方案,每次都不缓存,没啥意义。

3,本地图片动画测试

 上面都是加载Drawable 图片,但是实际场景还有加载本地图片,比如提前把广告图下载到本地,这个时候上面的方法就不行了。
增加访问权限:
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
申请权限:
  1. /**
  2. * 6.0 以上申请权限
  3. */
  4. if(ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED)
  5. {
  6. ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},0);
  7. }
申请权限可参考 Android 6.0 权限机制详解

代码:
  1. //这是我本地的一张图片
  2. imagePath = Environment.getExternalStorageDirectory()+"/ic_splash.png";
  1. imageView.setImageBitmap(BitmapFactory.decodeFile(imagePath));
  2. objectAnimator.setDuration(2500);
  3. objectAnimator.start();

但是这种方案不推荐使用

4,本地图片GLIDE动画测试

   使用Glide加载:
  
  1. Glide.with(this).load(imagePath).diskCacheStrategy(DiskCacheStrategy.ALL).into(imageView);
  2. objectAnimator.setDuration(2500);
  3. objectAnimator.start();

这种方式最常用。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号