文档章节

轮播

小情绪在洒脱
 小情绪在洒脱
发布于 2016/07/29 14:03
字数 309
阅读 5
收藏 0

import java.util.ArrayList;
import java.util.List;

import com.example.looper1409.adapter.LooperAdapter;
import com.example.looper1409.constant.ImageUri;
import com.nostra13.universalimageloader.core.ImageLoader;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import android.widget.RadioButton;
import android.widget.RadioGroup;

public class MainActivity extends Activity {

    private ViewPager mViewPager;
    private RadioGroup mRadioGroup;
    private List<ImageView> mImageViewList;
    private ImageLoader mImageLoader;
    
    private Handler mHandler = new Handler(){
        public void handleMessage(android.os.Message msg) {
            //翻页
            mViewPager.setCurrentItem(mViewPager.getCurrentItem() + 1);
            //调用下次
            sendMessageDelay();
        };
    };

    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mImageLoader = ImageLoader.getInstance();
        // 查找view
        initViews();
        //自动播放
        sendMessageDelay();
    }
    
    private void sendMessageDelay(){
        mHandler.sendEmptyMessageDelayed(0, 2000);
    }

    private void initViews() {
        mViewPager = (ViewPager) findViewById(R.id.vp);
        mRadioGroup = (RadioGroup) findViewById(R.id.rg);

        initImageViews();
        mViewPager.setAdapter(new LooperAdapter(mImageViewList));

        initDots();
        
        mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageSelected(int index) {
                //分页指示器跟着动
                mRadioGroup.check(index % ImageUri.images.length);
            }
            
            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }
            
            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        });
    }

    private void initDots() {

        int wrap = RadioGroup.LayoutParams.WRAP_CONTENT;
        RadioGroup.LayoutParams params = new RadioGroup.LayoutParams(wrap, wrap);
        params.leftMargin = 5;

        for (int i = 0; i < ImageUri.images.length; i++) {
            // 创建一个单选按钮
            RadioButton rb = new RadioButton(this);
            rb.setId(i);
            // 设置按钮图片
            rb.setButtonDrawable(R.drawable.x_dot_selector);
            // 添加到组里
            if (i == 0) {
                mRadioGroup.addView(rb);
            } else {
                mRadioGroup.addView(rb, params);
            }
        }
        // 默认选中第一个
        mRadioGroup.check(0);
    }

    private void initImageViews() {
        mImageViewList = new ArrayList<ImageView>();
        for (int i = 0; i < ImageUri.images.length; i++) {
            ImageView iv = new ImageView(this);
            //添加touch事件
            iv.setOnTouchListener(new ImageTouchEvent());
            iv.setScaleType(ScaleType.FIT_XY);
            // 加载图片
            mImageLoader.displayImage(ImageUri.images[i], iv);
            // 添加到list中
            mImageViewList.add(iv);
        }
    }
    
    class ImageTouchEvent implements View.OnTouchListener {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                //按下时,停止播放
                mHandler.removeCallbacksAndMessages(null);
                break;
            case MotionEvent.ACTION_CANCEL:
            case MotionEvent.ACTION_UP:
                //抬起时,继续播放
                sendMessageDelay();
                break;
            }
            return true;
        }
    }

}

 

© 著作权归作者所有

共有 人打赏支持
小情绪在洒脱
粉丝 3
博文 18
码字总数 19251
作品 0
海淀
程序员
关于图片轮播图的一个简单实例 以及实例中发现问题

1.最近在学习JS的过程中,为了巩固水平做了一个简单的轮播图,以及在做的过程中发现一些问题(未解决!希望可以有大佬可以解释这个问题) 2.代码如下:

前端二弟
05/17
0
0
4.22、Bootstrap V4自学之路-----内容---轮播

示例 <div id="carousel-example-generic" class="carousel slide" data-ride="carousel"> <ol class="carousel-indicators"> <li data-target="#carousel-example-generic" data-slide-to="......

Asktao
2016/03/25
105
0
ys152452/swiper-in-vue

轮播组件 当前可配置功能 基础轮播 宽度高度设置带单位 自动轮播 分页器 分页器自定义 前进后退按钮 前进后退按钮自定义 loop循环 懒加载 多栏轮播 多栏轮播间隔设置 垂直、水平方向轮播 卡片...

ys152452
2017/12/18
0
0
写一个轮播图,学会 React Native

我学习 Web 的第一课,就是学习写一个轮播图,在写轮播图时自然地将 html、css、js、DOM、组件设计等各方面简单的知识点给串起来了。学习 React Native 的时候,也自然用起了这个思路,挺好用...

穿越过来的键盘手
07/10
0
0
小博老师演示常用JQuery效果 ——图片轮播

[理论知识] 我们在实际开发应用程序的过程中,经常会遇到图片轮播的效果需求,本文小博老师就为大家演示一下,如何使用JQuery框架实现图片轮播的效果。 [步骤解读一]界面布局 首先我们创建一...

博为峰教研组
2016/11/16
73
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Nexus Repository Manager 搭建私有docker仓库

Nexus Repository Manager 搭建私有docker仓库 2018年05月08日 14:44:23 阅读数:115 1.下载nexus3的镜像: docker pull sonatype/nexus3 2.使用镜像启动一个容器: docker run -d --name n...

linjin200
13分钟前
0
0
大数据技术的发展趋势

大数据领域已经涌现出了大量新的技术,它们成为大数据采集、存储、处理和呈现的有力武器。这些技术下一步将如何发展?它们之中哪些技术 将广为流行?又会诞生哪些新的技术? 技术趋向多样化,...

董黎明
15分钟前
1
0
谷歌浏览器插件入门示例

实现:任何网址实现图片下载和获取当前域名的cookies的json字符串。 图片下载是给小白用的,可以选中批量下载,获取cookies 是为了方便程序员调试用。 获取cookies: git地址: https://gite...

NLGBZJ
17分钟前
2
0
152. Maximum Product Subarray - LeetCode

Question 152. Maximum Product Subarray Solution 题目大意:求数列中连续子序列的最大连乘积 思路:动态规划实现,现在动态规划理解的还不透,照着公式往上套的,这个问题要注意正负,需要...

yysue
18分钟前
0
0
IDEA工具 jdk,tomcat,maven 配置

设置JDK、tomcat、maven的版本 一、JDK      如果下拉列表没有,SDKS ---> + ----> 选择下载的JDK目录 ---> APPLY OK    二、tomcat 三、Maven    四、生成 git 本地创库...

君千殇520
18分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部