`

一个简单的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
分享到:
评论

相关推荐

    VB简易loading画面

    综上所述,VB简易loading画面的创建涉及到窗体设计、动画实现、事件处理、延时逻辑、多线程以及程序控制等多个方面。通过理解和掌握这些知识点,开发者可以为自己的VB应用增添更丰富的用户体验。在实际开发过程中,...

    CSS等待遮罩loading效果(多个)

    "CSS等待遮罩loading效果(多个)"是一个集合,包含了多个不同的CSS实现的加载动画,旨在为用户提供美观且不单调的加载界面。 CSS(Cascading Style Sheets)是一种样式表语言,用于描述HTML或XML(包括如SVG、Math...

    简单的安卓loading初始化页面

    在Android应用开发中,"简单的安卓loading初始化页面"是一个常见的需求,主要用于在应用程序启动时展示一个加载界面,给用户一个良好的交互体验,特别是在应用需要进行一些后台数据加载或初始化操作时。这个Demo对于...

    40个创意loading动画

    5. 故事型动画:通过讲述一个小故事或展示一个场景,使等待变得有趣。 三、设计原则 1. 清晰可见:确保loading动画位于屏幕中央或显眼位置,避免用户错过。 2. 时间感知:动画应与加载时间相匹配,过短可能导致用户...

    vuerouter切换时loading效果实现

    在Vue.js应用中,路由管理器Vue Router是一个至关重要的组件,它使得页面间的导航变得简单且优雅。在实际开发中,我们经常需要在路由切换时添加加载效果,以提升用户体验,尤其是在处理异步数据或者等待资源加载时。...

    自己封装的精美loading界面简单

    标题中的"自己封装的精美loading界面简单"表明,我们将创建一个可重用的组件,它具有精美的视觉效果,并且易于集成到项目中。这个组件应该是轻量级的,不会增加过多的复杂性,同时提供丰富的定制选项,以适应不同...

    vue loading 页面加载动画提示

    例如,一个简单的旋转动画可以这样编写: ```scss // loading.scss $loading-spinner-size: 40px; .loading-spinner { width: $loading-spinner-size; height: $loading-spinner-size; border: 3px solid #ccc;...

    整理的loading gif图片一组,背景透明

    在IT行业中,尤其是在网页设计和开发领域,"loading"元素是一个至关重要的部分。"加载"动画,通常以.gif格式呈现,用于告知用户系统正在进行后台处理,等待内容的完全加载。这种视觉反馈能提升用户体验,因为它提供...

    53个html加载动画,loading动画,加载过程gif

    2. **CSS动画原理**:CSS3引入了动画功能,允许开发者通过关键帧(@keyframes)定义一个动画的过程,从一个状态变化到另一个状态。通过设置`animation-name`、`animation-duration`、`animation-timing-function`等...

    原生css的loading遮罩层效果

    Loading动画通常是在网页内容加载过程中显示的一个视觉反馈,它告诉用户系统正在处理请求,需要稍等片刻。一个良好的loading设计能够缓解用户的焦虑感,使他们明白网站正在运行中而不是卡住或出错。 接着,我们来看...

    旋转的loading效果

    这种效果往往以简单而优雅的形式呈现,例如一个持续旋转的小图标,或者一个动态的圆形元素在不断地进行旋转填充。旋转的过程通常伴随着平滑的动画过渡,给用户带来视觉上的舒适感。 实现旋转的loading效果,开发者...

    一个适合做页面 “加载中” 效果的插件 jquery-loading

    "jquery-loading"是一个专为实现这种效果设计的jQuery插件,它提供了一种简单而实用的方式来显示页面加载的状态,避免用户在等待过程中感到不耐烦。 首先,我们来了解一下jQuery。jQuery是一个快速、简洁的...

    安卓实现仿微信loading提示框

    微信的Loading提示框通常由一个中心的旋转动画和简单的背景组成,这种设计既不会遮挡太多屏幕内容,又能吸引用户的注意力。 实现这个效果,我们需要以下几个步骤: 1. **创建布局资源**:在`res/layout`目录下创建...

    loading等待载入动态图

    描述中提到的"圆形图标"可能是一个典型的loading动画设计,圆形的循环运动象征着持续进行的过程,给人以连续性和期待感。 在实际设计中,loading动画需要考虑以下几个关键因素: 1. **简洁性**:loading动画应该...

    layer_loading插件

    "layer_loading"插件就是为了提升这种体验而设计的,它提供了简单而炫酷的加载动画,能够在数据延迟加载过程中给用户以反馈,使得等待过程不再枯燥无味。这篇内容将深入探讨这个插件的核心功能、实现原理以及如何在...

    js实现页面加载完毕之前loading提示效果

    这个效果可以在页面内容完全加载之前,向用户展示一个“页面加载中,请稍后...”的提示,以提升用户体验,避免用户在等待过程中感到不耐烦。 首先,我们需要在HTML中创建一个“loading”提示的元素。通常我们会选择...

    ios-简单实用的loading.zip

    "ios-简单实用的loading.zip"中的资源很可能是提供了一个简单的加载指示器解决方案,使得开发者只需要一行代码就能在应用中集成这种功能。下面我们将深入探讨加载指示器在iOS开发中的应用、实现方式以及如何通过简洁...

    自定义loading

    例如,一个常见的加载动画就是一个小圆圈不断旋转,这样的效果可以通过定义一系列旋转动画的关键帧来实现。XML文件中的标签就可以用来定义这种旋转动画,通过指定fromDegrees、toDegrees、pivotX和pivotY等属性,...

    网络请求统一Loading

    1. **设计Loading视图**:创建一个通用且适应性强的Loading动画视图,可以是简单的文本提示,也可以是图形动画。设计应考虑到不同场景下的使用,如全屏加载、局部加载等。 2. **封装网络请求库**:如果使用的是第三...

Global site tag (gtag.js) - Google Analytics