文档章节

轮播

小情绪在洒脱
 小情绪在洒脱
发布于 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
海淀
程序员
私信 提问
加载中
请先登录后再评论。
StreetPass

StreetPass,最初是想模拟任天堂NDS掌机中的StreetPass开发的(但未完成,大体框架已可行)。适用于记录每天在街上偶遇的纸妹Or帅锅的信息。 原理是想采用Wifi hot技术,由此可以在搜索到附近...

口米巴
2013/03/18
1.6K
0
硬实时操作系统--Raw OS

Raw-OS 起飞于2012年,Raw-OS志在制作中国人自己的最优秀硬实时操作系统。 Raw-OS 操作系统特性 内核最大关中断时间无限接近0us, s3c2440系统最大关中断时间实测0.8us。 支持idle任务级别的事...

jorya_txj
2013/03/19
6.3K
1
电影浏览器movbrow(linux版)

电影浏览器movbrow 是一个搜索、播放盘上视频的软件 搜索多个指定文件夹下的视频,默认是用户目录下的视频文件夹 按照文件实际格式来查找视频,不是根据后缀名,然后会查找一个跟他同名的后缀...

zzzzzzzzzzz
2010/10/26
738
4
iOS开发一款小巧简洁的日历控件

iOS开发一款小巧简洁的日历控件 一、引言 日 历是iOS开发中有时会用到的一个UI控件,网上开源的代码也很多,我浏览过一些,大致有两种模式,一种是日历的逻辑由开发者自己实现,通过计算闰年...

珲少
2015/09/07
1W
1
UI中如何用纯代码的方式来实现一个图片轮播器

图片轮播器 • 实现思路: • 1. 添加 UIScrollView • 2. 动态向 UIScrollView 中添加图片框(横向) • 3. 设置 UIScrollView 的 contentSize 实现滚动, 实现横向滚动 • 4. 实现分页 • 5....

DXSmile_大熊
2016/01/02
36
0

没有更多内容

加载失败,请刷新页面

加载更多

获取JavaScript数组中的所有唯一值(删除重复项) - Get all unique values in a JavaScript array (remove duplicates)

问题: I have an array of numbers that I need to make sure are unique. 我需要确定一个唯一的数字数组。 I found the code snippet below on the internet and it works great until th......

javail
31分钟前
11
0
如何检查字符串是否为空? - How to check if the string is empty?

问题: Does Python have something like an empty string variable where you can do: Python是否有类似空字符串变量的内容可以在其中执行: if myString == string.empty: Regardless, wh......

富含淀粉
今天
7
0
您如何存储未跟踪的文件? - How do you stash an untracked file?

问题: I have changes to a file, plus a new file, and would like to use git stash to put them away while I switch to another task. 我对一个文件进行了更改,再加上一个新文件,并希......

技术盛宴
今天
39
0
GeoPandas入门 | 01-地理数据介绍

01-地理数据介绍 1.1 Python地理空间矢量数据简介 %matplotlib inlineimport pandas as pdimport geopandas 导入地理数据 地理空间数据通常可以从特定的GIS文件格式或数据存储中获得,如...

酱肉包-
今天
25
0
OSChina 周三乱弹 —— 我是不是也有王室血统

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @小小编辑推荐,《我们》- 陈奕迅 《我们》- 陈奕迅 手机党少年们想听歌,请使劲儿戳(这里) @举个栗子OSC :快抬头看天!!! 雨后还有彩虹...

小小编辑
今天
59
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部