首页 > 系统 > Android > 正文

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

2019-10-22 18:16:02
字体:
来源:转载
供稿:网友

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,相册,查看器

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


注:相关教程知识阅读请移步到Android开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表