当前位置:  编程技术>移动开发

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

    来源: 互联网  发布时间:2014-10-25

    本文导语:  这是一个android开屏布局的实例,可以用于加载广告图片和倒计时的布局。程序中设置的LayoutParams,划分额外空间比例为6分之5,具体权重比例可根据用户自己需求来自定义,异步加载广告图片,相关的Android代码。 具体实现代码...

这是一个android开屏布局的实例,可以用于加载广告图片和倒计时的布局。程序中设置的LayoutParams,划分额外空间比例为6分之5,具体权重比例可根据用户自己需求来自定义,异步加载广告图片,相关的Android代码。

具体实现代码如下:

package cn.waps.extend;
import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Color;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.RoundRectShape;
import android.os.AsyncTask;
import android.os.Handler;
import android.os.Looper;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.qcn.wzlz.AppConnect;
import com.qcn.wzlz.SDKUtils;
public class LoadingPopAd {
 private final static Handler mHandler = new Handler();
 private static LoadingPopAd loadingAppPopAd;
 public static LoadingPopAd getInstance(){
 if(loadingAppPopAd == null){
  loadingAppPopAd = new LoadingPopAd();
 }
 if (Looper.myLooper() == null) {
  Looper.prepare();
 }
 return loadingAppPopAd;
 }
 /**
 * 获取开屏布局
 * @param context
 * @param time
 * @return
 */
 public View getContentView(Context context, int time){
 return getLoadingLayout(context, time);
 }
 private LinearLayout getLoadingLayout(final Context context, final int time){
 // 整体布局
 LinearLayout layout = new LinearLayout(context);
 layout.setOrientation(LinearLayout.VERTICAL);
 layout.setGravity(Gravity.CENTER);
 int bg_id = context.getResources().getIdentifier("loading_bg", "drawable", context.getPackageName());
 if(bg_id != 0){
  layout.setBackgroundResource(bg_id);
 }
 // 加载广告图片和倒计时的布局,用与
 LinearLayout l_layout = new LinearLayout(context);
 l_layout.setGravity(Gravity.CENTER);
 // 设置LayoutParams,划分额外空间比例为6分之5(具体权重比例可根据自己需求自定义)
 l_layout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, 1f));
 // 加载图片的布局
 RelativeLayout pop_layout = new RelativeLayout(context);
 TextView timeView = new TextView(context);
 timeView.setText("剩余" + time + "秒");
 timeView.setTextSize(10);
 timeView.setTextColor(Color.BLACK);
 timeView.setPadding(8, 3, 6, 2);
 int num = 12;
 // 对手机进行屏幕判断
 int displaySize = SDKUtils.getDisplaySize(context);
 if(displaySize == 320){
  num = 8;
 }else if(displaySize == 240){
  num = 6;
 }else if(displaySize == 720){
  num = 16;
 }else if(displaySize == 1080){
  num = 20;
 }
 float[] outerRadii = new float[] { 0, 0, num, num, 0, 0, num, num};
 ShapeDrawable timeView_shapeDrawable = new ShapeDrawable();
 timeView_shapeDrawable.setShape(new RoundRectShape(outerRadii, null, null));
 timeView_shapeDrawable.getPaint().setColor(Color.argb(255, 255, 255, 255));
 timeView.setBackgroundDrawable(timeView_shapeDrawable);
 //异步执行倒计时
 //异步加载广告图片
 new ShowPopAdTask(context, pop_layout, timeView).execute();
 new TimeCountDownTask(timeView, time).execute();
 TextView textView = new TextView(context);
 textView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, 5f));
 textView.setText("正在启动,请稍后...");
 textView.setGravity(Gravity.CENTER);
 textView.setTextColor(Color.WHITE);
 l_layout.addView(pop_layout);
 layout.addView(l_layout);
 layout.addView(textView);
 return layout;
 }
 private class TimeCountDownTask extends AsyncTask{
 TextView timeView;
 int limit_time = 0;
 TimeCountDownTask(TextView timeView, int time){
 this.timeView = timeView;
 this.limit_time = time;
 }
 @Override
 protected Boolean doInBackground(Void... params) {
  while(limit_time > 0){
  mHandler.post(new Runnable(){
   @Override
   public void run() {
   timeView.setText("剩余" + limit_time + "秒");
   }
  });
  try {
   Thread.sleep(1000);
  } catch (Exception e) {
   e.printStackTrace();
  }
  limit_time--;
  }
  return null;
 }
 }
 private class ShowPopAdTask extends AsyncTask{
 Context context;
 RelativeLayout pop_layout;
 LinearLayout popAdView;
 TextView timeView;
 int height_full = 0;
 int height = 0;
 ShowPopAdTask(Context context, RelativeLayout pop_layout, TextView timeView){
  this.context = context;
  this.pop_layout = pop_layout;
  this.timeView = timeView;
 }
 @Override
 protected Boolean doInBackground(Void... params) {
  try {
  height_full = ((Activity)context).getWindowManager().getDefaultDisplay().getHeight();
  int height_tmp = height_full - 75;//75为设备状态栏加标题栏的高度
  height = height_tmp * 5/6;
  while(true){
   if(((Activity)context).getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE
   && height_full 

    
 
 

您可能感兴趣的文章:

  • 手写android布局示例
  • android动态加载布局文件示例
  • android layout 按比例布局的代码
  • Android自定义View设定到FrameLayout布局中实现多组件显示的方法 分享
  • Android 布局控件之LinearLayout详细介绍
  • android Activity相对布局的使用方法
  • Android中使用include标签和merge标签重复使用布局
  • android LinearLayout和RelativeLayout组合实现精确布局方法介绍
  • Android布局——Preference自定义layout的方法
  • android Activity线性布局和表格布局实例讲解
  • Android自定义格式显示Button的布局思路
  • android布局属性详解分享
  • android界面布局之实现文本块布局效果示例
  • Android RelativeLayout相对布局属性简析
  • android LinearLayout 布局实例代码
  • 如何在android中使用html作布局文件
  • android 布局属性详解
  • 深入Android 五大布局对象的应用
  • android 线性布局LinearLayout实例代码
  • android自定义RadioGroup可以添加多种布局的实现方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Android 图片加载和缓存库 Glide
  • Android加载对话框同时异步执行实现方法
  • Android 中动态加载.jar的实现步骤
  • Android中自定义加载样式图片的具体实现
  • android判断phonegap是否联网且加载super.loadUrl网址
  • 基于android示例程序(bitmapfun) 高效加载图片让人无语地方
  • Android 游戏引擎libgdx 资源加载进度百分比显示案例分析
  • Android 自定义标题栏 显示网页加载进度的方法实例
  • Android加载大分辨率图片到手机内存中的实例方法
  • 基于Android ListView之加载使用技巧
  • Android 异步加载图片的实例代码
  • android异步加载图片并缓存到本地实现方法
  • Android 异步加载图片分析总结
  • android 加载本地联系人实现方法
  • android WebView加载html5介绍
  • 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  • Android瀑布流实例 android_waterfall
  • Android开发需要的几点注意事项总结
  • Android系统自带样式 (android:theme)
  • android 4.0 托管进程介绍及优先级和回收机制
  • Android网络共享软件 Android Wifi Tether
  • Android访问与手机通讯相关类的介绍
  • Android 图标库 Android GraphView
  • Android及andriod无线网络Wifi开发的几点注意事项
  • 轻量级Android开发工具 Android Tools
  • Android 2.3 下StrictMode介绍
  • Android 开发环境 Android Studio
  • IDEA的Android开发插件 idea-android
  • Android手机事件提醒 Android Notifier
  • XBMC的Android客户端 android-xbmcremote
  • Android小游戏 Android Shapes




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3