Android :为你的启动页面SplashActivity 添加动画的几种方法

xiaoxiao2021-02-28  117

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

关于动画,必看的博客:

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

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

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

1,Drawable 动画测试

假设这张图片是放在drawable目录下的, ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(imageView,"alpha",0.6f,1.0f); imageView.setImageResource(R.drawable.ic_splash); //动画时长 objectAnimator.setDuration(2500); 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 加载动画 Glide.with(this).load(R.drawable.ic_splash).diskCacheStrategy(DiskCacheStrategy.ALL). into(imageView); objectAnimator.setDuration(2500); objectAnimator.start(); 这里推荐第二个方案,每次都不缓存,没啥意义。

3,本地图片动画测试

 上面都是加载Drawable 图片,但是实际场景还有加载本地图片,比如提前把广告图下载到本地,这个时候上面的方法就不行了。 增加访问权限: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>申请权限: /** * 6.0 以上申请权限 */ if(ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},0); }申请权限可参考 Android 6.0 权限机制详解 代码: //这是我本地的一张图片 imagePath = Environment.getExternalStorageDirectory()+"/ic_splash.png"; imageView.setImageBitmap(BitmapFactory.decodeFile(imagePath)); objectAnimator.setDuration(2500); objectAnimator.start(); 但是这种方案不推荐使用

4,本地图片GLIDE动画测试

   使用Glide加载:    Glide.with(this).load(imagePath).diskCacheStrategy(DiskCacheStrategy.ALL).into(imageView); objectAnimator.setDuration(2500); objectAnimator.start(); 这种方式最常用。
转载请注明原文地址: https://www.6miu.com/read-72266.html

最新回复(0)