• 开启一个线程Thread并用进度条显示进度

    Thread的使用
    服务器君一共花费 418.384 ms 进行了 4 次数据库查询,努力地为您提供了这个页面。
    广告很萌的
    1. Chapter: 从代码角度去认识 Thread
      1. 1. 开启一个线程Thread并用进度条显示进度

    线程 Thread 是 Java 和 Android 的一个重要概念,这里我们先撇开一些概念性的东西,用代码来看看如何使用线程

    还是接前面的例子,我们在 PaintingActivity 里面做一个按钮,点击按钮开启一个线程去加载下一幅的图片,目前我们就不做加载图片,取而代之的是,我们就弄一个进度条吧。

    PaintingActivity :

    private Button btn_next;
    private ProgressBar pgb;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    	// TODO Auto-generated method stub
    	super.onCreate(savedInstanceState);
    	setContentView(R.layout.painting);
    	
    	btn_next = (Button)findViewById(R.id.btn_loadnext);
    	pgb = (ProgressBar)findViewById(R.id.loading_progress);
    	
    	btn_next.setOnClickListener(new ButtonListener());
    }
    
    class ButtonListener implements OnClickListener{
    
    	@Override
    	public void onClick(View v) {
    		// TODO Auto-generated method stub
    		if( v.getId() == R.id.btn_loadnext){
    			//startActivity(intent);
    			Thread t = new LoadPicThread();
    			t.start();
    		}
    	}
    	
    }
    
    class LoadPicThread extends Thread{
    	public void run(){
    		for(int i = 0; i <= 100; i++){
    			try {
    				Thread.sleep(20);
    			} catch (InterruptedException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    			pgb.setProgress(pgb.getProgress() + 1);
    		}
    	}
    }
    

    painting.xml

    <ProgressBar 
    	android:id="@+id/loading_progress"
    	android:layout_width="match_parent"
    	android:layout_height="wrap_content"
    	style="?android:attr/progressBarStyleHorizontal"
    	/>
    
    <Button
    	android:id="@+id/btn_loadnext"
    	android:layout_width="match_parent"
    	android:layout_height="wrap_content"
    	android:layout_below="@+id/loading_progress"
    	android:text="NextPic" />
    

    代码写得很简单直观,这里就不多解释了,程序运行结果:

更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [软件工程与项目管理] 开始使用Git 3 个条目
  2. [软件工程与项目管理] 浏览器的HTML解析器 8 个条目
  3. [计算机算法] 两数交换的各种算法细节 2 个条目
  4. [移动开发] 从代码角度去认识 Handler 4 个条目
  5. [软件工程与项目管理] 了解一点WebKit 9 个条目
  6. [JavaScript程序设计] 关于HTTP Keep-Alive 6 个条目
  7. [JavaScript程序设计] Web实时通信技术名词解析 5 个条目
  8. [移动开发] Android抽屉导航NavigationDrawer 5 个条目
  9. [PHP程序设计] PHP扩展模块安装 1 个条目
  10. [JavaScript程序设计] jQuery与表单操作 2 个条目
  11. [Python程序设计] Tornado表单处理 3 个条目
  12. [C语言程序设计] 结构体基本知识 1 个条目
窗口 -- [资讯]