Android上一个动画效果的实现与优化

1、背景介绍

       这个好像没有太多需要解释的地方,就是我们在进行网络请求的时候会有一个加载图,这里我们常常使用很多张图片形成一个动画,等数据加载完毕之后就影藏或者销毁。


2、实现方式

      提供一个最原始的实现方式,代码多一些,不过不难理解,直接贴出XML代码如下:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
	android:oneshot="false">
    
	<item android:drawable="@drawable/loading_0"  android:duration="100"/>
	<item android:drawable="@drawable/loading_1"  android:duration="100"/>
	<item android:drawable="@drawable/loading_2"  android:duration="100"/>
	<item android:drawable="@drawable/loading_3"  android:duration="100"/>
	<item android:drawable="@drawable/loading_4"  android:duration="100"/>
	<item android:drawable="@drawable/loading_5"  android:duration="100"/>
	<item android:drawable="@drawable/loading_6"  android:duration="100"/>
	<item android:drawable="@drawable/loading_7"  android:duration="100"/>
	<item android:drawable="@drawable/loading_8"  android:duration="100"/>
	<item android:drawable="@drawable/loading_9"  android:duration="100"/>
	<item android:drawable="@drawable/loading_10" android:duration="100"/>
	<item android:drawable="@drawable/loading_11" android:duration="100"/>
    
</animation-list>

实际上这里是使用了一个animation-list,使用了12张图片,形成一个动画的效果。


3、优化方式

       在上面的那种方式中,虽然代码没什么问题,但是有个问题会比较糟糕,就是图片多了容易占内存,所以就会想着,能不能实现一张图片转圈,而不要使用多张图片转换呢?那么答案是可行的,这里提供一种方式如下:

<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/loading_0"
    android:pivotX="50%"
    android:pivotY="50%"/>

4、总结

       上面的代码读者最好是亲身测试,我发现这种优化方式,在有的机器上没问题,而部分机器好像并不能实现我们想要的效果,读者应该自己做一个测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值