Handler制作简单相册查看器的实例代码

Handler制作简单相册查看器的实例代码,第1张

概述Handler类简介在Android平台中,新启动的线程是无法访问Activity里的Widget的,当然也不能将运行状态外送出来,这就需要有Handler机制进行信息的传递了,Handler类位于android.os包下,主要的功能是完成Activity的W

Handler类简介

在AndroID平台中,新启动的线程是无法访问Activity里的Widget的,当然也不能将运行状态外送出来,这就需要有Handler机制进行信息的传递了,Handler类位于androID.os包下,主要的功能是完成Activity的Widget与应用程序中线程之间的交互。

开发带有Handler类的程序步骤如下:

1. 在Activity或Activity的Widget中开发Handler类的对象,并重写handlerMessage方法。

2. 在新启动的线程中调用sendEmptyMessage或者sendMessage方法并向Handler发送消息。

3. Handler类的对象用handlerMessage方法接受消息,然后根据消息的不同执行不同的 *** 作。

Handler使用案例(简单相册查看器)

编写布局文件。activity_handler_sample.xml的代码如下:

<?xml version="1.0" enCoding="utf-8"?><linearLayout  xmlns:androID="http://schemas.androID.com/apk/res/androID"  androID:orIEntation="vertical"  androID:layout_wIDth="fill_parent"  androID:layout_height="fill_parent"  androID:gravity="center">  <ImageVIEw    androID:ID="@+ID/myImageVIEw"    androID:layout_wIDth="fill_parent"    androID:layout_height="wrap_content"    androID:gravity="center"/></linearLayout>

新建MyTread.java文件,代码如下:

package com.example.sample_9_9;public class MyTread extends Thread{    //继承自线程类  HandlerSampleActivity activity;     //activity引用  int what = 1;              //发送消息的what值  public MyTread(HandlerSampleActivity activity){ //构造器    this.activity = activity;    //得到activity的引用  }  @OverrIDe  public voID run(){    while(true){       //循环      activity.myHandler.sendEmptyMessage((what++)%4);      //发送消息,%4是因为只有四张图进行轮换      try{        Thread.sleep(2000);    //睡眠两秒钟      }      catch (Exception e){     //捕获异常        e.printstacktrace();   //打印异常      }    }  }}

HandlerSampleActivity.java文件代码如下:

package com.example.sample_9_9;import androID.os.Handler;import androID.os.Message;import androID.support.v7.app.AppCompatActivity;import androID.os.Bundle;import androID.Widget.ImageVIEw;public class HandlerSampleActivity extends AppCompatActivity {  ImageVIEw myImageVIEw;  Handler myHandler = new Handler() { //创建一个Handler对象    @OverrIDe    public voID handleMessage(Message msg) {  //重写接收消息的方法      switch (msg.what) { //判断what值        case 0:          myImageVIEw.setimageResource(R.drawable .a);          break;        case 1:          myImageVIEw.setimageResource(R.drawable .b);          break;        case 2:          myImageVIEw.setimageResource(R.drawable .c);          break;        case 3:          myImageVIEw.setimageResource(R.drawable .d);          break;      }      super.handleMessage(msg);    }  };  @OverrIDe  protected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_handler_sample);    myImageVIEw = (ImageVIEw) findVIEwByID(R.ID.myImageVIEw);    MyTread myThread = new MyTread(this);  //初始化线程    myThread.start(); //启动线程  }}

效果图如下:

以上这篇Handler制作简单相册查看器的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。

您可能感兴趣的文章:android Handler详细使用方法实例Android开发使用Handler实现图片轮播功能示例 总结

以上是内存溢出为你收集整理的Handler制作简单相册查看器的实例代码全部内容,希望文章能够帮你解决Handler制作简单相册查看器的实例代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1143020.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存