`

一个简单的Loading过程

阅读更多


实现起来还是比较简单的.看下面的代码.
package com.ql.app;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Gravity;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class App extends Activity {
	private LinearLayout layout;
	private Handler handler;
	private int number=10;
	private ImageView[] imageViews=new ImageView[number];
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        handler=new Handler(){

			@Override
			public void handleMessage(Message msg) {
				//效率比较低
//				for(int i=0;i<number;i++){
//					imageViews[i].setBackgroundResource(i==msg.what?R.drawable.progress_go_small:R.drawable.progress_bg_small);
//				}
				//这样效率高
				imageViews[msg.what].setBackgroundResource(R.drawable.progress_go_small);
				if(msg.what==0){
					msg.what=number;
				}
				imageViews[msg.what-1].setBackgroundResource(R.drawable.progress_bg_small);
				
			}
		};
        
		initViews();
        
        playAnimation();
    }
    
    private void initViews(){
    	 layout=(LinearLayout)findViewById(R.id.layout);
         
         LinearLayout container=new LinearLayout(this);
         container.setOrientation(LinearLayout.HORIZONTAL);
         container.setGravity(Gravity.CENTER);
         LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.FILL_PARENT);
         lp.gravity=Gravity.CENTER;
         
         LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
         
         for(int i=0;i<number;i++){
         	imageViews[i]=new ImageView(this);
         	imageViews[i].setBackgroundResource(i==0?R.drawable.progress_go_small:R.drawable.progress_bg_small);
         	container.addView(imageViews[i], params);
         }
         
         layout.addView(container,lp);
    }
    
  //不断发送消息,切换图片
	private void playAnimation() {
		new Thread() {
			@Override
			public void run() {
				while (true) {
					for (int i = 0; i < number; i++) {
						handler.sendEmptyMessage(i);
						try {
							this.sleep(300);
						} catch (InterruptedException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					}

				}

			}

		}.start();
	}
   
    		
}


一个比较笨的实现:
http://gundumw100.iteye.com/admin/blogs/1052266
  • 大小: 3.3 KB
分享到:
评论

相关推荐

    HTML5 Loading动画加载 五彩的圆环Loading

    首先是HTML代码,只定义一个Loading容器,非常简单。 ”hold”&gt; 接下来是CSS代码,主要是定义每一个圆圈的动画效果: @-webkit-keyframes spin { from { -webkit-transform: rotate(360deg); transform: ...

    懒人原生使用logo标志叠加显示loading加载效果

    这个效果主要是模拟新浪微博一个年度财报H5页面中的loading加载效果 由于本案例图片比较小,真正加载效果很快,所以用简单的js做了一个控制 主要展示的是加载的过程,喜欢的懒人可以模仿试试 主要传播的是一...

    优雅地使用loading(推荐)

    前言  不知道从什么时候开始有了写博客的想法,奈何自己的知识储备还很薄弱,迟迟无法下笔。这是我的第一篇博客,算是记录一下自己学习前端以来的一些知识吧。...先实现一个简单的loading &lt;div cla

    Ajax请求过程中显示“进度”的简单实现

    在进行Ajax调用过程中一般都具有这样的做法:显示一个GIF图片动画表明后台正在工作,同时阻止用户操作本页面(比如Ajax请求通过某个按钮触发,用户不能频繁点击该按钮产生多个并发Ajax请求);调用完成后,图片消失...

    Android代码-一款加载动画,不同的物体加速下落砸到了文字上,文字逞阻尼效果,向下弯曲并像橡皮筋一样弹动回去的效果

    &gt; 之前公司需要我等程序员左右一个特殊的loading效果,我们的APP是生鲜O2O的某公司,将原来listview的下拉loading动画更换成一个带有阻尼效果也就是橡皮筋效果的loading具体的就是水果往下砸的过程中,下面的文字会...

    marionette.loading:Marionette.loading 简化了在应用程序中创建加载视图

    Marionette.loading 简化了在应用程序中创建加载视图的过程。 当您的集合和模型与服务器同步时,只需很少的工作,您的视图就会自动替换为加载视图。 用法 初始化 有两种方法可以初始化 Marionette.loading。 最...

    一个简化通用APP开发过程的综合库

    这是一个简单的面向独立 APP 制作者的库,包含了一些通用的界面元素,例如底部 TAB 栏,侧滑菜单等常用 UI ,另外,提供了通用的 Activity 及 Fragment Loading 提示,全局下拉刷新,数据库操作方面使用了 Afinal 这...

    【前端素材】模板-多种实用loading.zip

    这种方式简单易用,适合实现简单的动画效果,如过渡、旋转、缩放等。 JavaScript 动画:通过 JavaScript 操作 DOM 元素的样式属性,实现更复杂、交互性更强的动画效果。常见的库包括 jQuery、Anime.js、GreenSock...

    Android 加载动画的实现

    Android加载动画的简单实现,&lt;?xml version="1.0" encoding="utf-8"?&gt; ... android: &lt;item android:duration="130" android:drawable="@drawable/image_loading_01"&gt; ...一个配置文件搞定。

    Android使用Matrix旋转图片模拟碟片加载过程

    今天实现了一个模拟碟片加载过程的小demo,在此展示一下。由于在公司,不好截取动态图片,因此就在这截取两张静态图片看看效果先。 下面简单的将代码列出来。 setp1、准备两张用于旋转的图片,如下:loading_disc....

    仿QQ+webso框架·开源

    随后当这些文件都加载完毕的时候就剩下最后一个步骤了,那就是加载桌面背景,之所以把大图片放到加载过中是因为在没加载完成前页面实在是有点难看,所以就这么做了。 至此,整个程序的运行大过程就已经结束了。 ...

    c#等待提示对话框,防止界面假死

    中new object[] 第一个参数一定要为固定的参数:创建LOADing.FORMshow的实例,后面再就可跟任意数据,都可在方法的过程中调用显示,最后的bool参数:false方法函数执行完毕后自动关闭窗体显示;true为方法执行完毕后...

    Ajax在请求过程中显示进度的简单实现

    在进行Ajax调用过程中一般都具有这样的做法:显示一个GIF图片动画表明后台正在工作,同时阻止用户操作本页面(比如Ajax请求通过某个按钮触发,用户不能频繁点击该按钮产生多个并发Ajax请求);调用完成后,图片消失...

    JavaScript实现网页加载进度条代码超简单

    网页进度条能够更好的反应当前网页的加载进度情况,loading进度条可用动画的形式从开始0%到100%完成网页加载这一过程。但是目前的浏览器并没有提供页面加载进度方面的接口,也就是说页面还无法准确返回页面实际加载...

    数据库设计中英文术语表.doc

    Data conversion and loading(数据转换和加载):数据库应用生命周期重的一个阶段,包括转换现有 数据到新数据库中以及酱下耨应用程序转换到新的数据库上运行。 27. Data dictionary(数据字典):参见系统目录...

    jdbc连接数据库的方式2

     此外,使用Statement对象也使得编写动态SQL命令更加简单,因为我们可以将字符串连接在一起,建立一个有效的SQL命令。因此,我认为,Statement对象可以使动态SQL命令的创建和执行变得更加简单。  4、利用helper...

    一款简单的 page 切换布局

    绪论Android 中经常使用一个空白页和网络错误页用来提高用户体验,给用户一个较好的感官,如果获取到的数据为空,那么会显示一个空白数据页,如果在获取数据的过程中网络错误了,会显示一个网络异常页,像最近比较火...

    Android 4游戏编程入门经典

     8.2.4 一个简单的用法示例  8.3 2d物理定律浅析  8.3.1 牛顿和欧拉,永远的好朋友  8.3.2 力和质量  8.3.3 理论上的运动  8.3.4 运动的实现  8.4 2d碰撞检测和对象表示  8.4.1 边界形状  8.4.2 构造边界...

    在python3环境下的Django中使用MySQL数据库的实例

    我们在使用Django过程中,数据库往往是离不开的,比较长常用的是MySQL数据库,但在使用过程中,对Python不同的版本对用的库也不一样,用惯了Python2的人在使用Python3时经常会遇到下面的错误: Error loading ...

Global site tag (gtag.js) - Google Analytics