1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:tools="http://schemas.android.com/tools"
  4. android:id="@+id/activity_main"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. tools:context="com.bigou.tuhuo.MainActivity">
  8.  
  9. <android.support.v4.view.ViewPager
  10. android:id="@+id/lunbotu"
  11. android:layout_marginTop="-10dp"
  12. android:layout_alignParentTop="true"
  13. android:layout_width="match_parent"
  14. android:layout_height="180dp" />
  15.  
  16. <LinearLayout
  17. android:id="@+id/points"
  18. android:layout_marginTop="130dp"
  19. android:layout_width="match_parent"
  20. android:layout_height="wrap_content"
  21. android:gravity="center_horizontal"
  22. android:orientation="horizontal"/>
  23. </RelativeLayout>
  1. package com.bigou.tuhuo;
  2.  
  3. import android.content.Context;
  4. import android.content.pm.ActivityInfo;
  5. import android.os.Bundle;
  6. import android.os.Handler;
  7. import android.os.Message;
  8. import android.support.v4.view.ViewPager;
  9. import android.support.v7.app.AppCompatActivity;
  10. import android.util.Log;
  11. import android.view.LayoutInflater;
  12. import android.widget.ImageView;
  13. import android.widget.LinearLayout;
  14.  
  15. import com.bigou.tuhuo.adapters.LunbotuAdapter;
  16. import com.squareup.picasso.Picasso;
  17.  
  18. import java.util.ArrayList;
  19. import java.util.List;
  20. /**
  21. * Created by cunli on 2017/2/11.
  22. */
  23. public class MainActivity extends AppCompatActivity {
  24. private Context context = MainActivity.this;
  25. private ViewPager viewPager;//轮播图组件
  26. private int currentPage = 0;//轮播图的当前页
  27. private List<ImageView> images;//首页轮播的图片
  28. private boolean isRunning = true;
  29. ImageView image;
  30. LinearLayout linearLayouPoints;//当前页指示器
  31. private Handler handler = new Handler() {
  32. @Override
  33. public void handleMessage(Message msg) {
  34. super.handleMessage(msg);
  35. switch (msg.what) {
  36. case 1:
  37. int curpage = msg.arg1;
  38. viewPager.setCurrentItem(curpage);
  39. if (curpage > 0) {
  40. ((ImageView) linearLayouPoints.getChildAt(curpage - 1)).setImageResource(R.drawable.point_normal);
  41. } else if (curpage == 0) {
  42. ((ImageView) linearLayouPoints.getChildAt(images.size() - 1)).setImageResource(R.drawable.point_normal);
  43. }
  44. ((ImageView) linearLayouPoints.getChildAt(curpage)).setImageResource(R.drawable.point_check);
  45. }
  46. }
  47. };
  48.  
  49. @Override
  50. protected void onCreate(Bundle savedInstanceState) {
  51. super.onCreate(savedInstanceState);
  52. setContentView(R.layout.activity_main);
  53. initUI();
  54. }
  55.  
  56. //初始化界面布局
  57. private void initUI() {
  58. setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  59. viewPager = (ViewPager) findViewById(R.id.lunbotu);
  60.  
  61. // 首页轮播的图片
  62. images = new ArrayList<>();
  63. for (int i = 0; i < 8; i++) {
  64. String url = "http://192.168.191.1:8080/b" + (i + 1) + ".jpg";
  65. image = new ImageView(context);
  66. Picasso.with(context).load(url).into(image);
  67. images.add(image);
  68. }
  69. linearLayouPoints = (LinearLayout) findViewById(R.id.points);
  70. for (int i = 0; i < images.size(); i++) {
  71. ImageView iv = (ImageView) LayoutInflater.from(context).inflate(R.layout.point, null);
  72. iv.setImageResource(R.drawable.point_normal);
  73. linearLayouPoints.addView(iv);
  74. }
  75.  
  76. viewPager.setAdapter(new LunbotuAdapter(context, images));
  77.  
  78. new Thread() {
  79. int cp = 0;
  80.  
  81. @Override
  82. public void run() {
  83. super.run();
  84. while (isRunning) {
  85. Message message = Message.obtain();
  86. message.what = 1;
  87. if (cp == images.size()) {
  88. cp = 0;
  89. }
  90. message.arg1 = cp;
  91. handler.sendMessage(message);
  92. cp++;
  93. try {
  94. Thread.sleep(5000);
  95. } catch (InterruptedException e) {
  96. e.printStackTrace();
  97. }
  98. }
  99.  
  100. }
  101. }.start();
  102.  
  103. }
  104.  
  105. @Override
  106. protected void onDestroy() {
  107. isRunning = false;
  108. handler = null;
  109. super.onDestroy();
  110. Log.e("MainActivity", "-----------停止线程--------------");
  111. }
  112. }
  1. package com.bigou.tuhuo.adapters;
  2.  
  3. import android.content.Context;
  4. import android.support.v4.view.PagerAdapter;
  5. import android.view.View;
  6. import android.view.ViewGroup;
  7. import android.widget.ImageView;
  8.  
  9. import java.util.List;
  10.  
  11. /**
  12. * Created by cunli on 2017/2/11.
  13. */
  14. //给首页轮播图填充图片
  15. public class LunbotuAdapter extends PagerAdapter {
  16. private Context context;
  17. private List<ImageView> images;
  18.  
  19. public LunbotuAdapter(Context context, List<ImageView> images) {
  20. this.context = context;
  21. this.images = images;
  22. }
  23.  
  24. @Override
  25. public int getCount() {
  26. return images.size();
  27. }
  28.  
  29. @Override
  30. public boolean isViewFromObject(View view, Object object) {
  31. return view == object;
  32. }
  33.  
  34. @Override
  35. public Object instantiateItem(ViewGroup container, int position) {
  36. ImageView linearLayout = images.get(position);
  37. container.addView(linearLayout);
  38. return linearLayout;
  39. }
  40.  
  41. @Override
  42. public void destroyItem(ViewGroup container, int position, Object object) {
  43. container.removeView(images.get(position));
  44. }
  45. }

lunbotu.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <ImageView xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:id="@+id/lunbo_image"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent" />

point.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <ImageView xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. android:paddingEnd="5dp"/>

当前显示页圆点:point_check.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android">
  3. <corners android:radius="5dp" />
  4. <solid android:color="@color/colorPointCheck" />
  5. <size
  6. android:width="10dp"
  7. android:height="10dp" />
  8. </shape>

默认圆点:point_normal.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android">
  3. <corners android:radius="5dp" />
  4. <solid android:color="@color/colorPointNomal" />
  5. <size
  6. android:width="10dp"
  7. android:height="10dp" />
  8. </shape>

color.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <color name="colorPrimary">#3F51B5</color>
  4. <color name="colorPrimaryDark">#303F9F</color>
  5. <color name="colorAccent">#FF4081</color>
  6. <color name="colorPointCheck">#FF4081</color>
  7. <color name="colorPointNomal">#55fffaff</color>
  8. </resources>

webview自动循环播放的更多相关文章

  1. JS可控制的图片自动循环播放查看效果

    JS可控制的图片自动循环播放查看效果 <html> <head> <title>JS可控制的图片自动循环播放查看效果丨芯晴网页特效丨CsrCode.Cn</t ...

  2. video 自动循环播放

    video 只加autoplay并不能自动播放,需要再加上muted   <video controls="controls" autoplay loop muted> ...

  3. Android videoview循环播放视频

    如何在一个activity里实现videoview对一个文件夹下的所有视频文件顺序循环播放,当切换界面时暂停, 切换回来继续原来的视频播放呢.所谓的 自动循环播放就是监听到视频播放结束之后继续重新播放 ...

  4. android 自定义无限循环播放的viewPager。轮播ViewPager。实现循环播放 广告,主题内容,活动,新闻内容时。

    前言 实际项目需要一个 播放广告的控件,可能有多个广告图片.每个一段时间更换该图片.简单来说,就是一个 “循环播放图片”的控件. 间隔时间更换图片 一般来说,图片切换时需要有动画效果 需要支持手势,用 ...

  5. UIScrollView实现自动循环滚动广告

    实现效果如下: 功能说明: 程序运行,图片自动循环播放,采用定时器实现; 当用户用手势触摸滑动时,定时器的自动播放取消,停止触摸时,自动无限播放; 代码如下 : 采用封装视图,外部进行调用即可: 1. ...

  6. C# WPF 用MediaElement控件实现视频循环播放

    在WPF里用MediaElement控件,实现一个循环播放单一视频的程序,同时可以控制视频的播放.暂停.停止. 一种方式,使用MediaElement.MediaEnded事件,在视频播放结束后,自动 ...

  7. 微信小程序自定义音频组件,自定义滚动条,单曲循环,循环播放

    小程序自定义音频组件,带滚动条 摘要:首先自定义音频组件,是因为产品有这样的需求,需要如下样式的 而微信小程序API给我们提供的就是这样的 而且产品需要小程序有后台播放功能,所以我们不考虑小程序的 a ...

  8. egret的tween动画循环播放

    开发中发现了egret的自带tween动画中tweenGroup没有自动重新播放的代码,就使用了一种较笨的方法进行播放 比如:我在exml皮肤文件中写了一个动画组tweenGroup,并且在ts文件中 ...

  9. c#winform循环播放多个视频

    环境: vs2015 +winform 首先,vs自带组件很方便,所以,用windowMediaplayer组件,如果做单曲循环播放的话,加个属性: axWindowsMediaPlayer1.set ...

随机推荐

  1. 10张思维导图带你学习【Java​Script】

    思维导图小tips:思维导图又叫心智图.是表达发射性思维的有效的图形思维工具 ,它简单却又极其有效,是一种革命性的思维工具.思维导图运用图文并重的技巧.把各级主题的关系用相互隶属与相关的层级图表现出来 ...

  2. 1.const

    在C++中,const 的含义并没有改变,只是对细节进行了一些调整,以下是最主要的两点. 一.C++中的 const 更像编译阶段的 #define 先来看下面的两条语句: ; int n = m; ...

  3. nginx 模块简介

    nginx模块一般分为5类:核心模块.标准http模块.可选http模块.邮件服务模块.第三方模块. 其中核心模块和标准http模块在快速编译之后就包含在了nginx中. 主要看一下核心模块.标准ht ...

  4. JS DOM -- 关于回车键盘事件执行事件

    一.需求制作一个模拟对话框, 二. 1.需要发送后,输入框清空 2.按enter键可发送 三.代码部分 <!DOCTYPE HTML> <html> <head> ...

  5. 使用pycharm手动搭建python语言django开发环境(五) 使用日志模块打日志

    1.在项目的settings.py中增加日志相关声明 #增加日志设置 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'fil ...

  6. 运行cotroller后,查看vuser日志为空

    查看C:\Users\***\AppData\Local\Temp\res\log下,文件夹空,处理如下 run-time-setting中,选中always send message

  7. string 的函数

    string 有一个很好用到函数:substr(index). 去掉前index个字符.

  8. mock的时候验证代码行是否执行

    verify(advertismentService).queryAdvitismentInfForApp(baseBOs, false);

  9. vbox安装ubuntu之后挂载共享文件夹无权限访问的问题以及改了主机名,导致命令行不能解析主机名的问题

    1.挂载方法在挂载的时候虚拟机给出了命令 2. sudo adduser yourusername vboxsf (vboxsf是挂载的文件夹的用户组,在/media目录下用 ls -l 命令可以看到 ...

  10. javaweb+mysql+c3p0ajax实现三级联动

    1.首先要导入jar文件: c3p0-0.9.5.1.jarcommons-beanutils-1.7.0.jarcommons-collections-3.2.jarcommons-dbutils- ...