很多朋友都问过我,很多手机游戏在加载资源的过程中,都能显示一个很漂亮的进度条,并且他平滑的从0%走到了100%,当进度达到100%后,那些资源还真的加载完成了,这个过程是怎么实现的?我想各人都有各人的实现方式吧,在这帖中,我就说说一种可行又简单的方式,供大家交流,互相学习,也把好的方式与我分享。
首先,我把我要加载的资源按其加载量来定其需要的百几比,比如我要加载一个大文件,一个小文件,我就将大文件定为80%,小文件定为20%,也就是把100%分为了两份,而把这一整个加载过程放到线程里,再用一个程序来显示这一加载的动态过程,如下例:
public drawLoading
{
public int step = 0 ;
public int loaded = 0 ;
public drawLoading()
{
// 创建加载资源线程
new loadResource(this) ;
while(true)
{
// 如果加载完毕,跳出循环
if ( step >= 100 )
break ;
if ( step == loaded )
continue ;
step ++ ;
// 动态显示加载进度
System.out.println("" + step + "%")
}
}
}
public loadResource implements Runnable
{
private drawLoading load ;
public loadResource(drawLoading load)
{
this.load = load ;
Thread t = new Thread(this) ;
t.start() ;
}
public void run()
{
load.loaded = 80 ;
.... 加载大的资源
load.loaded = 99 ;
.... 加载小的资源
load.loaded = 100 ;
}
}
运行结果:
动态打印 1% ... 100%后,资源也加载完毕了
需要注意的是,最后一个资源加载前,loaded只能设到99,因为万一走到了100%资源还没有加载完,有可能出现混乱。根据这个简单的例子,你可以修改ldrawLoading的显示过程达到你需要的效果,做loading界面不再是难事。