Android开启新线程实现电子广告牌项目

Android开启新线程实现电子广告牌项目,第1张

概述利用之前学过的多线程处理技术,我们做一个开启新线程实现电子广告牌的项目

利用之前学过的多线程处理技术,我们做一个开启新线程实现电子广告牌的项目

界面布局文件,加入ImageVIEw图片控件,用于显示一个图片,一个TextVIEw控件,用于显示广告说明语。

res/layout/main.xml:

<?xml version="1.0" enCoding="utf-8"?> <linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"   xmlns:tools="http://schemas.androID.com/tools"   androID:ID="@+ID/linearLayout1"   androID:layout_wIDth="fill_parent"   androID:layout_height="fill_parent"   androID:orIEntation="vertical" >   <ImageVIEw androID:ID="@+ID/imageVIEw1"     androID:layout_wIDth="wrap_content"     androID:layout_height="wrap_content"     androID:padding="10dp"     androID:src="@drawable/hint"/>   <TextVIEw androID:ID="@+ID/TextVIEw1"     androID:layout_wIDth="wrap_content"     androID:layout_height="wrap_content"     androID:padding="10dp"/> </linearLayout> 

在res/drawable下加入几张广告图片(ad1.jpg、ad2.jpg、ad3.jpg、ad4.jpg、ad5.jpg)

在主界面中,产生随机数不断的变换在ImageVIEw空间上的图片资源文件,来实现一个类似于幻灯片的电子广告牌
MainActivity:

package com.example.test;    import java.util.Random;   import androID.app.Activity; import androID.os.Bundle; import androID.os.Handler; import androID.os.Message; import androID.Widget.ImageVIEw; import androID.Widget.TextVIEw;   public class MainActivity extends Activity implements Runnable{     private ImageVIEw imageVIEw;    private TextVIEw textVIEw;    private Handler handler;    private int[] path=new int[]{R.drawable.ad1,R.drawable.ad2,R.drawable.ad3,R.drawable.ad4,R.drawable.ad5};    private String[] @R_404_5979@=new String[]{"美国进口葡萄酒","乐享移动4G时代","江山御景楼盘开售","大学康城新区现房","五粮液精品"};   @OverrIDe    public voID onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      setContentVIEw(R.layout.main);          imageVIEw=(ImageVIEw)findVIEwByID(R.ID.imageVIEw1);     textVIEw=(TextVIEw)findVIEwByID(R.ID.TextVIEw1);          Thread t=new Thread(this);//创建新线程     t.start();//开启线程     //实例化一个Handler对象     handler=new Handler(){         @OverrIDe       public voID handleMessage(Message msg) {         //更新UI         if(msg.what==0x101){           textVIEw.setText(msg.getData().getString("@R_404_5979@"));//设置标题           imageVIEw.setimageResource(path[msg.arg1]);//设置要显示的图片         }         super.handleMessage(msg);       }            };   }   /*    * 判断当前线程是否被中断,如果没有被中断,    * 则首先产生一个随机数,然后获取一个Message,并将要显示    * 的广告图片的索引值和对应标题保存到该Message中,再发生    * 消息,最后让线程休眠2秒钟    * */   @OverrIDe   public voID run() {     int index=0;     while(!Thread.currentThread().isInterrupted()){       index=new Random().nextInt(path.length);//产生一个随机数       Message m=handler.obtainMessage();//获取一个Message       m.arg1=index;//保存要显示广告图片的索引值       Bundle bundle=new Bundle();//获取Bundle对象       m.what=0x101;//设置消息标识       bundle.putString("@R_404_5979@",@R_404_5979@[index]);//保存标题       m.setData(bundle);//将Bundle对象保存到Message中       handler.sendMessage(m);//发送消息       try {         Thread.sleep(2000);//让线程休眠2秒钟       } catch (InterruptedException e) {         // Todo auto-generated catch block         e.printstacktrace();//输出异常信息       }     }   }   } 

 显示效果如图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的Android开启新线程实现电子广告牌项目全部内容,希望文章能够帮你解决Android开启新线程实现电子广告牌项目所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存