轮播图触摸监听事件

重点在适配器: 

package com.example.dell.androidstudio_workspace09.Adapter;

import android.content.Context;
import android.graphics.Bitmap;
import android.support.v4.view.PagerAdapter;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.Toast;

import com.example.dell.androidstudio_workspace09.Main3Activity;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;

import java.util.List;
import java.util.logging.Handler;

/**
 * Created by DELL on 2018/5/2.
 */

public class MyImgAdapter extends PagerAdapter{

    private List<String> imgs;
    private android.os.Handler handler;
    private Context context;
    private final DisplayImageOptions options;

    public MyImgAdapter(List<String> imgs, android.os.Handler handler, Context context) {
        this.imgs = imgs;
        this.handler = handler;
        this.context = context;

        //使用内存缓存
        //使用磁盘缓存
        //设置图片色彩模式
        //设置图片的缩放模式
        options = new DisplayImageOptions.Builder()
                .cacheInMemory(true)//使用内存缓存
                .cacheOnDisk(true)//使用磁盘缓存
                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式
                .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
                .build();

    }

    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == object;
    }



    @Override
    public Object instantiateItem(ViewGroup container, final int position) {

        ImageView imageView = new ImageView(context);

        imageView.setScaleType(ImageView.ScaleType.FIT_XY);

        ImageLoader.getInstance().displayImage(imgs.get(position%imgs.size()),imageView,options);

        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(context, imgs.get(position%imgs.size()), Toast.LENGTH_SHORT).show();
            }
        });

        imageView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {

                switch (motionEvent.getAction()){
                    //手指按下
                    case MotionEvent.ACTION_DOWN:
                        handler.removeCallbacksAndMessages(null);
                        break;

                    case MotionEvent.ACTION_MOVE:
                        handler.removeCallbacksAndMessages(null);
                        break;

                    case MotionEvent.ACTION_UP:
                        Toast.makeText(context,"up",Toast.LENGTH_SHORT).show();
                        handler.sendEmptyMessageDelayed(1,2000);
                        break;

                    case MotionEvent.ACTION_CANCEL:
                        Toast.makeText(context,"cancel",Toast.LENGTH_SHORT).show();
                        handler.sendEmptyMessageDelayed(1,2000);
                        break;
                }

                return true;
            }
        });

        container.addView(imageView);

        return imageView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {

        container.removeView((View) object);

    }
}
在Web开发中,实现响应触摸滑动事件轮播图通常需要使用JavaScript库来帮助处理触摸事件和动画。以下是使用jQuery和一个流行的触摸滑动插件如Swiper来实现响应触摸滑动事件轮播图的基本步骤: 1. 引入jQuery库和Swiper插件的CSS和JS文件到你的HTML页面中。 2. 创建轮播图的HTML结构,通常包括一个包含多个子项的容器。 3. 初始化Swiper实例,并设置其配置选项,确保将`touchEventsTarget`设置为轮播图容器,以便插件能够捕获触摸事件。 4. Swiper会自动处理触摸滑动事件,并根据用户的滑动方向更新轮播图的显示状态。 示例代码如下: ```html <!-- 引入Swiper的CSS和JS文件 --> <link rel="stylesheet" href="swiper.min.css"> <script src="swiper.min.js"></script> <!-- 引入jQuery --> <script src="jquery.min.js"></script> <!-- 创建轮播图结构 --> <div class="swiper-container"> <div class="swiper-wrapper"> <!-- 轮播图项 --> <div class="swiper-slide">内容 1</div> <div class="swiper-slide">内容 2</div> <div class="swiper-slide">内容 3</div> <!-- ... 更多轮播图项 --> </div> <!-- 如果需要,添加分页器 --> <div class="swiper-pagination"></div> </div> <script> // 初始化Swiper实例 var swiper = new Swiper('.swiper-container', { touchEventsTarget: '.swiper-container', // 确保这里设置为轮播图容器 // 其他配置项... }); </script> ``` 在上述代码中,`touchEventsTarget` 设置为轮播图容器 `.swiper-container`,这样Swiper插件就能监听并响应该容器上的触摸事件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值