android loading界面 及 处理

http://www.cnblogs.com/freeliver54/archive/2012/04/13/2446503.html

主要实现效果:
--------------
程序启动,进入loading界面,
loading界面显示背景图 及 进度条动画,
后台启动线程进行相应的初始化操作,
loading界面更新相应的初始化提示信息,
初始化完成,打开并进入主界面,关闭loading界面,
如果初始化超时,则弹出提示,退出程序。

 

loading.java
------------

package com.hello;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Window;
import android.widget.TextView;
import android.widget.Toast;

public class loading extends Activity {

int MSG_INIT_OK = 1;
int MSG_INIT_INFO = 2;
int MSG_INIT_TIMEOUT = 9;
 
boolean isTimeout = false;
 
TextView tvInfo ;
 
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.loading);
        tvInfo = (TextView)findViewById(R.id.tvInfo);
        initSystem();
            
    }
    
    private void initSystem(){
     initThread();
     mHandler.postDelayed(timeOutTask,60000);//60秒超时
    }
    
    
    public Handler mHandler = new Handler(){     
     public void handleMessage(Message msg){
      if(msg.what == MSG_INIT_TIMEOUT){      
 
       if (mHandler != null && timeOutTask != null ){
        mHandler.removeCallbacks(timeOutTask);
       }
       
       Toast.makeText(loading.this, "timeout", Toast.LENGTH_LONG).show();
       loading.this.finish();
       
      }else if(msg.what == MSG_INIT_OK){
       
       if (mHandler != null && timeOutTask != null ){
        mHandler.removeCallbacks(timeOutTask);
       }
       
       startActivity(new Intent(getApplication(),MainActivity.class));
                loading.this.finish();
      }else if(msg.what == MSG_INIT_INFO){

       String info = msg.obj.toString();
       tvInfo.setText(info);       
      }
     }     
    };
    
    Runnable timeOutTask = new Runnable() {
  public void run() {
   
   isTimeout = true;
   
   Message msg = Message.obtain();
   msg.what = MSG_INIT_TIMEOUT;
   mHandler.sendMessage(msg);
  }    
    };
    
    private void initThread(){
     new Thread(){
      public void run() {
       try {
        if(!isTimeout){
         sendInitInfo("初始化 step 1");         
         Thread.sleep(1000);//TODO 1
        }
        
        if(!isTimeout){
         sendInitInfo("初始化 step 2");
         Thread.sleep(2000);//TODO 2        
        }
        
        if(!isTimeout){
         sendInitInfo("初始化 step 3");
         Thread.sleep(3000);//TODO 2
        }
     
     if(!isTimeout){
      //初始化完成
      sendInitInfo("初始化完成");
         
      Message msg2 = Message.obtain();
      msg2.what = MSG_INIT_OK;
      mHandler.sendMessage(msg2);
     }
     
    } catch (InterruptedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
      }           
     }.start();
    }

    private void sendInitInfo(String info){
     Message msg1 = Message.obtain();
  msg1.what = MSG_INIT_INFO;
  msg1.obj = info;
  mHandler.sendMessage(msg1);
    }
}

 res/layout/loading.xml
----------------------

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent" android:layout_height="match_parent"
 android:background="@drawable/pf_loading_bg" android:orientation="horizontal">

 <TableLayout android:layout_width="match_parent"
  android:layout_height="match_parent">
  <TableRow>
   <ProgressBar android:id="@+id/progressBar1"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:paddingTop="10dip" android:paddingLeft="70dip"
    android:paddingRight="70dip" style="@style/loading">
   </ProgressBar>
  </TableRow>
  <TableRow>
   <TextView android:text="TextView" android:layout_height="wrap_content"
    android:id="@+id/tvInfo" android:layout_width="wrap_content"></TextView>
  </TableRow>
 </TableLayout>
 
</LinearLayout>

 

res/values/mystyle.xml
----------------------

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="loading" parent="@android:style/Widget.ProgressBar.Large">
        <item name="android:indeterminateDrawable">@anim/loading</item>
    </style>
</resources>

res/anim/loading.xml
--------------------

<?xml version="1.0" encoding="utf-8"?>
<animation-list android:oneshot="false" 
xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:duration="100" android:drawable="@drawable/loading1" />
<item android:duration="100" android:drawable="@drawable/loading2" />
<item android:duration="100" android:drawable="@drawable/loading3" />
</animation-list>

 

res/drawable-hdpi/
-------------------
loading_bg.png , 
loading1.png , loading2.png ,loading3.png

AndroidMainfest.xml
-------------------

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.hello"
      android:versionCode="1"
      android:versionName="1.0">

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MainActivity"
                  android:label="@string/app_name">
        </activity>
        
        <activity android:name=".loading">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

时间: 2024-09-22 20:23:01

android loading界面 及 处理的相关文章

《Android和PHP开发最佳实践》一2.7 Android应用界面

2.7 Android应用界面 Android应用界面系统,即Android UI(User Interface)系统是Android应用框架最核心的内容之一,也是开发者们需要重点掌握的内容.如果我们把Android应用也分为前后端两部分的话,那么之前介绍的核心要点和四大组件等都属于后端,而Android UI系统则属于前端.后端保证应用的稳定运行,而前端则决定应用的外观和体验.对于一个优秀的Android应用来说,漂亮的外观和流畅的体验是必不可少的.接下来,我们便来学习Android外观系统的

关于Android聊天界面中用使用adapter导致内存泄露的问题,目前不知道如何改善,大神帮忙看看

问题描述 关于Android聊天界面中用使用adapter导致内存泄露的问题,目前不知道如何改善,大神帮忙看看 之前一段时间使用一段时间老是导致内存升高,而且内存也不回收,一步一步的排除了很多地方, 到最后发现问题是出在adapter中,但是也不知道怎么改了. 大神帮看看哪些地方会导致内存泄露! public void setmList(List mList) { if (isgroup) { isDiaplayNickName = SharePreferenceUtil.get_Boolean

遵循现有的良好规范:Android应用界面设计规范性的建议

文章描述:Android 应用界面设计. 与 iOS 相比,Android 系统界面存在各种不协调,应用界面本身缺乏统一的规范.虽然 Android 的开放性为应用的自主发挥带来了最大的可能性,但如果系统本身能够提供标准的范例,也未必是一件坏事,毕竟许多应用并不一定需要独创的界面.从 Android 4.0 开始,系统界面在一致性上有了许多改善,那么 Android 应用的界面应该如何设计?如果你仔细观察 Google 近期的一系列应用上的设计,应该能发现在一些指导性的要点,而这些设计也正在被第

让jQuery Mobile不显示讨厌loading界面的方法

 jQuery Mobile总是显示讨厌的loading界面,下面有个不错的解决方法,大家可以参考下 jQuery Mobile 的一个BUG: 当不采用 ajax 以及 他自己的 back 返回的时候,即: 点击浏览器后退按钮时,将会从缓存之中加载页面,此时,讨厌的 loading 动画出来了,而且一直不消失. 网上找了好多解决方法,搜索了好久都没有好用的,今天突然想起来个釜底抽薪,直接动jqeury-mobile 的类库.    用编辑器打开,    找到显示pageLoading的方法,

Android零基础入门第12节:熟悉Android Studio界面,开始装逼卖萌

原文:Android零基础入门第12节:熟悉Android Studio界面,开始装逼卖萌 通过前两期的学习,我们可以正确搭建好Android Studio的开发环境,也创建了HelloWorld工程并成功运行,那么本期就带你一起来了解这款强大的IDE开发工具吧.     一.Android Studio主页面板   重新打开Android Studio会进入如下主页面,与第一次打开有略微差别. 从上图可以看到,一共有四大区域,接下来分别简单介绍: 区域1为最近新建或打开的Android Stu

Android用户注册界面简单设计_Android

本文实例为大家分享了Android用户注册界面的设计,供大家参考,具体内容如下 I. 实例目标 设计一个用户注册界面,在其中要使用到一些基础控件,如 文本框.编辑框.按钮.复选框等控件 II. 技术分析 首先在布局文件中使用控件的标记来配置所需要的各个控件,然后在 主Activity中获取到该控件,给其添加监听器来监听其操作,最后在控制台输出所操作的内容. III. 实现步骤 在Eclipse中创建 Android项目,名称为 TestUserRegister .设计一个用户注册界面,在其中要使

《Android和PHP开发最佳实践》一2.8 Android图形界面

2.8 Android图形界面 前面介绍了Android应用界面(Android UI)的相关内容,不过对于一些游戏应用来说,这些UI控件往往派不上用场.此外,一些特殊的Android应用也有可能会使用到比较底层的图形类库,因此,本节我们就来学习Android的图形系统. Android系统中的图形大致可以分为2D图形和3D图形两类,2D图形的类库在android.graphics包下,本节将会重点介绍:3D图形的类库在android.opengl包下,由于这部分内容和游戏开发关系比较紧密,这部

《Android App开发入门:使用Android Studio 2.X开发环境》——第 3章 Android App界面设计 3-1 View 与 ViewGroup(Layout):组件与布局

第 3章 Android App界面设计 3-1 View与 ViewGroup(Layout):组件与布局 3-2 使用 LinearLayout建立界面布局 3-3 使用 weight属性控制组件的宽 /高 3-4 通过属性美化外观 3-5 用程序设置组件的外观属性 3-6 使用 ConstraintLayout 提升设计与执行的性能 3-7 使用 Gmail 将程序寄 3-1 View 与 ViewGroup(Layout):组件与布局

android中界面的重载 刷新!!

问题描述 android中界面的重载 刷新!! 我想在第一个activity中填写信息后,想要 在第二个acitivity中用固定的格式刷新出来.拜求各位该怎么做,,,可以细说一下思路,有demo最好!! 填写: 发布: 解决方案 第一个activity填写数据后,存入数据库,跳转到第二个activity后用listview将数据库中数据取出来显示就行了. 解决方案二: 定义一个字符串s,把全部编辑框的内容用空格分开,按顺序添加到字符串, 再把字符串通过Intent 传给另一个activity,