想要的图片轮播Activity

public class BannerMediaActivity extends AppCompatActivity implements View.OnClickListener {private RelativeLayout full_screen;private BannerPager banner;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_banner_media);//设置屏幕长亮getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);full_screen = (RelativeLayout)findViewById(R.id.full_screen);// 从布局文件中获取名叫banner_media的横幅轮播条banner = (BannerPager)findViewById(R.id.banner_media);// 获取横幅轮播条的布局参数LayoutParams params = (LayoutParams) banner.getLayoutParams();//params.height = (int) (Utils.getScreenWidth(this) * 250f / 640f);// 设置横幅轮播条的布局参数banner.setLayoutParams(params);// 设置横幅轮播条的广告图片队列banner.setImage(ImageList.getDefault());//这里我的图片是从网络上拉下来的,你可以自定义List// 开始广告图片的轮播滚动banner.start();full_screen.setOnClickListener(this);//全屏展示StatusBarUtil.fullScreen(this);}@Overridepublic void onClick(View v) {finish();}@Overrideprotected void onStop() {super.onStop();}@Overrideprotected void onDestroy() {super.onDestroy();banner.stop();System.gc();}
}

对应activity_banner_media.xml文件

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><!--自定义的轮播图,需要使用全路径--><com.example.shopingcart.widget.BannerPagerandroid:id="@+id/banner_media"android:layout_width="match_parent"android:layout_height="match_parent" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><LinearLayoutandroid:layout_weight="5"android:layout_width="0dp"android:layout_height="match_parent"></LinearLayout><LinearLayoutandroid:layout_weight="1"android:layout_width="0dp"android:layout_height="match_parent"android:orientation="vertical"><LinearLayoutandroid:layout_weight="3"android:layout_width="match_parent"android:layout_height="0dp"></LinearLayout><ImageViewandroid:layout_weight="1"android:layout_width="match_parent"android:layout_height="0dp"android:src="@drawable/guide" /></LinearLayout></LinearLayout></RelativeLayout><RelativeLayoutandroid:id="@+id/full_screen"android:layout_width="match_parent"android:layout_height="match_parent"android:alpha="0"></RelativeLayout></FrameLayout>

BannerPager类

public class BannerPager extends RelativeLayout {private static final String TAG = "BannerPager";private Context mContext;//声明一个上下文对象private ViewPager vp_banner;//声明一个翻页视图对象private List<ImageView> mViewList = new ArrayList<ImageView>();//声明一个图像视图队列private  int mInterval = 10000;//轮播的时间间隔,单位毫秒public BannerPager(Context context){this(context,null);}public BannerPager(Context context, AttributeSet attrs) {super(context,attrs);mContext = context;initView();}//开始广告轮播public void start(){//延迟若干秒后启动任务mHandler.postDelayed(mScroll,mInterval);}//停止广告轮播public void stop(){//移除滚动任务mHandler.removeCallbacks(mScroll);}//设置广告轮播的间隔时间public void setInterval(int interval) {mInterval = interval;}//设置广告图片队列public void setImage(ArrayList<Bitmap> imageList){//根据图片队列生成图像视图队列for(int i=0;i<imageList.size();i++){ImageView iv = new ImageView(mContext);iv.setImageBitmap(imageList.get(i));iv.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));iv.setScaleType(ImageView.ScaleType.FIT_XY);mViewList.add(iv);}//设置翻页视图的图像适配器vp_banner.setAdapter(new ImageAdapter());//设置翻页视图默认显示第一页vp_banner.setCurrentItem(0);}private Handler mHandler = new Handler();//声明一个处理器对象//定义一个滚动任务private Runnable mScroll = new Runnable() {@Overridepublic void run() {scrollToNext();//滚动广告任务//延迟若干秒之后继续启动滚动任务mHandler.postDelayed(this,mInterval);}};//滚动到下一张广告图public void scrollToNext(){int index =vp_banner.getCurrentItem()+1;if(index>= mViewList.size()){index = 0;}//设置翻页视图显示指定位置的页面vp_banner.setCurrentItem(index);}//定义一个图像翻页适配器private class ImageAdapter extends PagerAdapter {@Overridepublic int getCount() {return mViewList.size();}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0 == arg1;}//从容器中销毁指定位置的页面public void destroyItem(ViewGroup container,int position,Object object){container.removeView(mViewList.get(position));}public Object instantiateItem(ViewGroup container, int position){container.addView(mViewList.get(position));return mViewList.get(position);}}//初始化视图private void initView() {//根据布局文件media.xml生成视图对象View view = LayoutInflater.from(mContext).inflate(R.layout.banner_media,null);//从布局文件中获取名叫vp_banner的视图vp_banner = view.findViewById(R.id.vp_banner);addView(view);// 将该布局视图添加到横幅轮播条}
}

倒计时CountDownTimer

public class BackMedia extends CountDownTimer {private String TAG = "BackMedia";private Context context;/** 参数millisInFuture   倒计时总时间* 参数 countDownInterval 渐变时间* */public BackMedia(long millisInFuture,long countDownInterval ,Context context){super(millisInFuture,countDownInterval);this.context = context;}//计时完毕时触发@Overridepublic void onFinish() {context.startActivity(new Intent(context, BannerMediaActivity.class));}//计时过程显示@Overridepublic void onTick(long millisUntilFinished) {//Log.i(TAG,"BackMedia seconds remaining"+millisUntilFinished/1000);}
}

这是banner_media.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><android.support.v4.view.ViewPagerandroid:id="@+id/vp_banner"android:layout_width="match_parent"android:layout_height="match_parent" /></RelativeLayout>

直接在想要的activity类中使用BackMedia就可以了,因为我这个是直接从项目中截取下来的,没有本地图片,读者可以自己自定义图片,可能有些地方有小错误,但不影响使用,欢迎指出,

Android一段时间无操作之后,进入广告轮播界面,以及触摸之后停止轮播相关推荐

  1. Android APP一段时间无操作显示屏保

    开发环境为eclipse,因为demo简单就没有使用android studio,android studio每次运行都要gradle编译一次,速度慢. 项目需要,做了一个Android TV 视频播 ...

  2. putty连接centos/Ubuntu一段时间无操作无法输入 死机 断线解决办法

    解决办法比较简单: PuTTY设置,putty -> Connection -> Seconds between keepalives ( 0 to turn off ),默认为0,改为5 ...

  3. android中屏保功能项目,【Android】一段时间不操作弹出【屏保】效果

    仿屏保效果 最近项目的一个小Demo,和大家分享一下,本篇文章主要展示的是一个仿屏保的效果,用户在一段时间不操作会自动弹出屏保页面,当处于屏保页面的时候,[两秒内连续]按两次键盘[回车键]就会退出屏保 ...

  4. MYSQL连接一段时间不操作后出现异常的解决方案

    MYSQL连接一段时间不操作后出现异常的解决方案 参考文章: (1)MYSQL连接一段时间不操作后出现异常的解决方案 (2)https://www.cnblogs.com/bokejiayuan/p/ ...

  5. php到期自动过期,PHP实现页面长时间无操作,自动过期函数

    PHP实现页面长时间无操作,自动过期函数 发布于 2015-01-13 19:55:41 | 878 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertex ...

  6. 解决终端SSH连接服务器一段时间不操作之后卡死的问题

    解决终端SSH连接服务器一段时间不操作之后卡死的问题 参考文章: (1)解决终端SSH连接服务器一段时间不操作之后卡死的问题 (2)https://www.cnblogs.com/pandawan/p ...

  7. mac一段时间不操作会死机

    台式机mac一段时间不操作,就会界面卡死,只能移动鼠标,然后会自动重启. 解决办法: 关机,然后拔掉电源,15秒后重新接回电源. 5秒后重新开机.解决了.

  8. Win11电脑一段时间不操作就断网怎么解决

    Win11系统频繁断网,很多朋友都不知道怎么回事,近期有部分Win11用户反映,Win11电脑一段时间不操作就断网,十分影响电脑的使用体验,那么有没有什么方法可以解决这一问题呢?下面我来教大家解决方法 ...

  9. android App一段时间没有操作或没有点击屏幕后弹出广告,或者一段时间没有点击屏幕进行特定操作。

    android App没有操作一段时间后弹出屏保广告页面 最近做了个项目,里面有个功能是app在任何activity中没有操作一段时间后要跳转到屏保广告页面,点击广告页面是返回上一个activity中 ...

最新文章

  1. 我的世界服务器菜单制作,小白腐竹福[服务器菜单制作]极其详细!看了就会
  2. 6.java设计模式
  3. 翻译连载 | JavaScript轻量级函数式编程-第7章: 闭包vs对象 |《你不知道的JS》姊妹篇...
  4. Oracle 双机热备 镜像 纯软 实战 配置教程 配置手册
  5. 灰色简约三级CSS下拉菜单代码
  6. hbase集群无法重启的可能原因之一及解决办法
  7. unity 解决引入dlopen api的问题
  8. 安卓APP_ 控件(5)—— ProgressBar
  9. 同一个项目相互调接口_408计算机网络D3-第二章:网络体系结构与参考模型(上)分层结构-协议-接口-服务...
  10. BootStrap笔记-表格方面的配置
  11. 软件开发生命周期模型
  12. Linux安装BerkleyDB
  13. 2020 年,嵌入式开发工程师的两大必知必会!
  14. MySQL获取数据库连接对象_利用JDBC连接mysql数据库,获取连接对象的通用格式
  15. Java 线程池 Executor浅入浅出
  16. radius服务器搭建
  17. 分布式日志收集(ELK)
  18. windows11鼠标滚轮反向
  19. windows快捷键失效 - 重启无效 - 插拔键盘解决
  20. 幕测平台_使用Junit测试异常,测试NextDay函数

热门文章

  1. Python:将Flask测试应用部署到Deta
  2. DeepFaceLab小白入门(6):脸部替换以及合成视频!
  3. with app.app_context(). See the documentation for more information.
  4. “星链”(StarLink)计划与“虹云”工程,让手机连接太空WiFi成为现实!
  5. 备考2022考研英语二小作文
  6. 地图服务器控件GIS Map Server v3.6发布,新增航空影像数据集功能
  7. 2013-10-19第一次去招聘市场面试
  8. Text Control DS Server创建Adobe PDF文档
  9. android 字体百分比,android 解决百分比布局适配时Textview的字体Textsize比例缩放问题...
  10. 最新彩虹易支付源码┼教程,彩虹易支付平台源码新增域名绑定功能和实名人工审核