文档章节

轮播

小情绪在洒脱
 小情绪在洒脱
发布于 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;
        }
    }

}

 

© 著作权归作者所有

共有 人打赏支持
上一篇: 路径
下一篇: QQ登录--net包
小情绪在洒脱
粉丝 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

没有更多内容

加载失败,请刷新页面

加载更多

python中sort和sorted函数小结

L.sort(cmp=None, key=None, reverse=False) sorted(iterable, cmp=None, key=None, reverse=False) 这样看,sorted函数只比sort函数多一个iterable参数,其余没什么不同,iterable是一个迭代......

上官夏洛特
27分钟前
1
0
thinkphp 常用SQL执行语句总结

第一条:Db::tablera('vr_panomas')->where(['delete_time'=>0,'id'=>['in',$pids]])->field(['id'=>'id','post_thumb'=>'thumb','post_title'=>'title','post_tags'=>'tags','post_price'=>......

koothon
37分钟前
1
0
支付宝返回状态resultStatus意思

上一篇集成支付宝的时候,会有一些支付宝返回的resultStatus,具体意思是: 9000 订单支付成功 8000 正在处理中 4000 订单支付失败 6001 用户中途取消 6002 网络连接出错 还有memo,意思就是...

RainOrz
41分钟前
1
0
electron webview 页面加载事件顺序

1.did-start-loading 页面开始加载 2.load-commit 主页面文档加载 3.page-title-updated title 4.dom-ready 主页面 dom 加载完成 5.load-commit frame文档加载 6.did-frame-finish-load fram......

dubox
46分钟前
1
0
cron语法格式

Seconds Minutes Hours DayofMonth Month DayofWeek Year或 Seconds Minutes Hours DayofMonth Month DayofWeek...

JavaSon712
46分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部