Android 起始页广告
来源:互联网 发布:淘宝手机详情尺寸大小 编辑:程序博客网 时间:2024/06/14 16:06
编写Android的项目时大都会碰到一个需求就是广告的问题,一般广告也都是在启动页上,
有一个大概三到五秒的广告,然后跳转进下一个界面,或者点击跳过时进入下一个界面,
之前写过类似的功能,然而没有写博文的习惯,所以每次需要用到这个功能的时候总是需要自己
再写一次逻辑,这次干脆记下来,免得下次还要重复写这个逻辑。效果如下,图片是随便找的,
有点难看,主要看思路:
首先建立一个activity,并建好xml布局文件,先上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/welcome_image" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.myapplication.view.start_activity.WelcomeActivity"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1"> <!--这个imageview放置广告图--> <ImageView android:id="@+id/welcome_ad" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:scaleType="fitXY" android:src="@mipmap/chart_main" /> <!--这个textview用来显示倒数秒数--> <TextView android:layout_width="@dimen/x70" android:layout_height="@dimen/y20" android:background="@drawable/search_shape" android:gravity="center" android:textColor="@color/bg_Black" android:textSize="@dimen/x16" android:id="@+id/btn_skip" android:layout_alignParentTop="true" android:layout_alignParentEnd="true" android:layout_marginRight="@dimen/x5" android:layout_marginTop="@dimen/y20" /> </RelativeLayout> <!--这个imageview是预留的logo图放置位置,上面三分之二为广告图--> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="3" android:scaleType="fitXY" /></LinearLayout>
大致布局就是这样,welcome_ad是放置广告的控件,textView是放置倒数计时的时间的,
做好了布局,就开始写逻辑和功能了,首先需要在放置广告的地方放置图片,既然是广告,肯定要
从网络上获取图片了,我用的是xutils框架,比较实用的网络请求框架,使用方法网上一堆堆,
这里就不赘述了,**好了,现在开始,先推荐一个加载图片的简单方式:
//这里的GET_AD是图片的网络地址x.image().bind(imageView,GET_AD);
xutils ,就是这么简单,广告打完了,正式开始,图片一般是从网络上获取,
我做项目之前的需求是图片从服务器获取,图片展示的时间也是由服务器来控制:
/* * @params url 获取图片路径的接口 * */ x.http().get(new RequestParams(url), new Callback.CommonCallback<String>() { @Override public void onSuccess(String s) { try { //通过Json解析数据 JSONObject object = new JSONObject(s); //imgPath是图片的网络路径 String imgPath = object.getString("pic"); //timeLong是图片展示的时间长度 final String timeLong = object.getString("count"); x.image().bind(welcome_ad, imgPath); //开启一个线程,用来对展示时间进行控制 new Thread() { @Override public void run() { // while (flag) { try { sleep(Integer.valueOf(timeLong) * 1000); /**这里进行展示时间到了之后的操作**/ /******************/ /******************/ } catch (InterruptedException e) { e.printStackTrace(); } // } } }.start(); //这个线程是给textView发送要填充的值用的 new Thread() { @Override public void run() { try { if (time != null && !time.equals("")) { for (int i = Integer.valueOf(time); i >= 0; i--) { //我在这里用的是handler来发送消息 //每隔一秒发送一次消息 mHandler.sendEmptyMessage(i); sleep(1000); } } } catch (InterruptedException e) { e.printStackTrace(); } } }.start(); } catch (JSONException e) { e.printStackTrace(); } } @Override public void onError(Throwable throwable, boolean b) { } @Override public void onCancelled(CancelledException e) { } @Override public void onFinished() { } });
OK,逻辑已经屡清楚了,上面一个开启了两个线程,第一个是对图片展示的时间进行控制,
第二个是对图片右上角的跳过按钮内的内容进行控制,handler已经开始发送消息了,接下来就该接收
消息了:
//接收handler发送的消息,进行处理 Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); //这里的btn_skip是跳过按钮,我用的是TextView; btn_skip.setText("(" + String.valueOf(msg.what) + "s)跳过"); } };
好啦,基本思路就是这样了,这样一来就实现了倒计时展示图片,接下来还要有点击跳过后直接跳过的
动作:
//跳过按键 btn_skip.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //在这里写跳过出发后的操作 } });
启动页的广告到这里就已经实现了,代码比较简单,就不上demo了,觉得我的文章对你有
帮助的话,帮我顶一下吧,如有错误之处,也欢迎指出。
本文为博主的原创文章,转载请注明出处
- Android 起始页广告
- android改变应用默认起始页
- android欢迎页广告
- Android启动页广告
- android起始之路
- Android 起始篇
- android 广告页自动切换
- Android app启动页广告
- VS2005 起始页新闻频道
- 动态改变起始页
- IIS设置起始页!
- android广告
- 起始
- 起始
- 起始
- 起始
- 起始
- android启动页广告欢迎界面
- Android 下不同格式字体的实现方法
- 欢迎使用CSDN-markdown编辑器
- Android动态破解微信本地数据库(EnMicroMsg.db)
- CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
- 一.机器人概率学笔记_定位
- Android 起始页广告
- 数据库第三方框架FMDB详细讲解
- Linux进程通信之信号
- jquery attr()方法
- leetcode-371-Sum of Two Integers
- Lua 继承,多态
- fast-rcnn配置运行VGG16.caffemodel和VGG_CNN_M_1024.v2.caffemodel(Ubuntu14.04)
- 批处理加0
- AFNetworking之于https认证