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

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

界面布局文件,加入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[] title=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("title"));//设置标题
          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("title",title[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利用ViewPager实现滑动广告板实例源码
  • Android实现Banner界面广告图片循环轮播(包括实现手动滑动循环)
  • Android自定义View实现广告信息上下滚动效果
  • Android笔记之:App应用之发布各广告平台版本的详解
  • Android实现广告图片轮播效果
  • Android编程实现ListView头部ViewPager广告轮询图效果
  • Android 破解视频App去除广告功能详解及解决办法总结
  • Android新闻广告条滚动效果
  • Android 应用启动欢迎界面广告的实现实例
(0)

相关推荐

  • Android自定义View实现广告信息上下滚动效果

    先看看效果: 实现代码: public class ScrollBanner extends LinearLayout { private TextView mBannerTV1; private TextView mBannerTV2; private Handler handler; private boolean isShow; private int startY1, endY1, startY2, endY2; private Runnable runnable; private Li

  • Android利用ViewPager实现滑动广告板实例源码

    •android-support-v4.jar,这是谷歌官方给我们提供的一个兼容低版本Android设备的软件包,里面包囊了只有在Android3.0以上可以使用的api.而ViewPager就是其中之一,利用它我们可以做很多事情,从最简单的导航,到页面切换菜单等等. •ViewPager的功能就是可以使视图滑动,就像Lanucher左右滑动那样. •本Demo向大家演示ViewPager的使用,并在用户未滑动View时,每隔5s钟自动切换到下一个View(循环切换),而当用户有Touch到Vi

  • Android笔记之:App应用之发布各广告平台版本的详解

    Android的广告平台是很多的,各市场对各平台的接受程度是不一样的,Android的开发者如果想集成广告基本要考虑下面两个问题:(1)集成什么广告,会赚钱?(2)集成什么广告,不会被市场拒绝?最终的结果往往是折中的.第一个问题是广告平台的判断问题,我没有发言权去评论,本文主要是针对第二个问题展开.解决方案就是打包应用的不同广告平台版本,本文接下来逐一展开相关话题. 1. 基础本文其实是针对<Android笔记之:App模块化及工程扩展的应用>和<Android笔记之:App自动化之使用

  • Android新闻广告条滚动效果

    项目中需要用到类似公告栏的控件,能用的基本不支持多行显示,于是只好自己动手,苦于没有自定义过一个像样的控件,借鉴Android公告条demo,实现了多行向上滚动的控件.在原控件基础之上添加如下功能:  •传入数据分页显示  •添加Left Drawable  •手指触摸事件处理  •添加3D动画翻滚效果 效果图 源码 package com.android.view; import android.content.Context; import android.content.res.Typed

  • Android 应用启动欢迎界面广告的实现实例

    Android 应用启动欢迎界面广告 0.写在前面 在这篇教程中来实现一个类似于微信的的延迟3秒再进入主界面的效果. 1.项目准备 先新建一个空的android项目.里面只自带一个MainActivity,首先我们再新建一个Activity叫做WelcomeActivity继承自Activity. Activity代码如下: //package在此省略,根据实际自行添加 import android.app.Activity; import android.os.Bundle; import a

  • Android实现广告图片轮播效果

    本文实例介绍了Android广告轮播图效果实现方法,分享给大家供大家参考,具体内容如下 首先看下一下布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:

  • Android编程实现ListView头部ViewPager广告轮询图效果

    本文实例讲述了Android编程实现ListView头部ViewPager广告轮询图效果.分享给大家供大家参考,具体如下: 之前看了别人的一些软件,发现其广告图轮询的时候,那个广告感觉和ViewPager的效果不太一样,后来也查了一下,是因为时间问题,找了一些资料,自己也实践一下. 1.为了解决ListView头部加ViewPager滑动冲突问题,必须自定义ListView,重写里面的onInterceptTouchEvent方法,ListView代码如下: package com.exampl

  • Android实现Banner界面广告图片循环轮播(包括实现手动滑动循环)

    前言:经常会看到有一些app的banner界面可以实现循环播放多个广告图片和手动滑动循环.本以为单纯的ViewPager就可以实现这些功能.但是蛋疼的事情来了,ViewPager并不支持循环翻页.所以要实现循环还得需要自己去动手.自己在网上也找了些例子,本博文的Demo是结合自己找到的一些相关例子的基础上去改造,也希望对读者有用. Demo实现的效果图如下: Demo代码: 工程目录如下图: 废话不多说,上代码. 1.主Activity代码如下: package com.stevenhu.and

  • Android 破解视频App去除广告功能详解及解决办法总结

    Android 破解视频App去除广告功能 作为一个屌丝程序猿也有追剧的时候,但是当打开视频app的时候,那些超长的广告已经让我这个屌丝无法忍受了,作为一个程序猿看视频还要出现广告那就是打我脸,但是我有没有钱买会员,只能靠着毕生技能去耍耍去除广告了.下面就来介绍一下如何进行视频广告的去除. 一.视频广告播放原理 首先我们需要了解的一个基本知识点那就是广告其实也是一段视频,那么他肯定有请求地址和播放地址.那么我们的思路就来了,如果能够得到这些地址的话,我们就可以去除广告了,为什么呢?因为我们知道所

  • Android实现加载广告图片和倒计时的开屏布局

    这是一个android开屏布局的实例,可以用于加载广告图片和倒计时的布局.程序中设置的LayoutParams,划分额外空间比例为6分之5,具体权重比例可根据用户自己需求来自定义,异步加载广告图片,相关的Android代码. 具体实现代码如下: package cn.waps.extend; import android.app.Activity; import android.content.Context; import android.content.res.Configuration;

随机推荐