Android中关于焦点图翻转之自定义控件SlideShowView的图片监听

首先声明:
1,关于自定义的slideShowVeiw控件不是我的原创,我也不会原创,至于是哪位大神的我也不清楚,现在在这里小弟先谢谢您!
2,因为项目中要使用焦点图翻转,通常都要实现对应图片的监听事件,我拿到这个slideShowVeiw控件后,自己不会写对应的图片监听,百度了几天也没结果,最后还在控件的适配器中通过position来对图片监听,结果可想而知,点击一次焦点图,然后焦点图每翻转一次,下面的几张图片不用点了,因为他自己就激发了点击事件,原因我估计是翻转的时候position在切换,所以事件就激发了,在这里我也不知道用激发这个字准不准确,自己理解的。
3,slideShowVeiw控件没有用来监听图片翻转的监听器,我不知道,即使有我也看不懂,通常。。。算了我编不下去,直接上我实现图片监听的代码!

/**
* ViewPager实现的轮播图广告自定义视图,如京东首页的广告轮播图效果;
* 既支持自动轮播页面也支持手势滑动切换页面
*
*
*/

public class SlideShowView111 extends FrameLayout implements View.OnClickListener {

/*自定义的焦点图添加Item监听事件,思路写个接口,创建回调方法*/
/*
* 步骤: 1 写个接口 该接口声明一个onClick方法
*        2对外爆出一个监听的调用的方法
*
*
* */



// 使用universal-image-loader插件读取网络图片,需要工程导入universal-image-loader-1.8.6-with-sources.jar
//  private ImageLoader imageLoader = ImageLoader.getInstance();
//  private BitmapUtils bitmapUtils;
//轮播图图片数量
private final static int IMAGE_COUNT = 4;
//自动轮播的时间间隔
private final static int TIME_INTERVAL = 5;
//自动轮播启用开关
private final static boolean isAutoPlay = false;

//跳转监听器
private OnClickListener goListener;

//自定义轮播图的资源
private String[] imageUrls;
//    private int[] imageSrcs;
//放轮播图片的ImageView 的list
private List<ImageView> imageViewsList;
//放圆点的View的list
private List<View> dotViewsList;

private ViewPager viewPager;
//当前轮播页
private int currentItem  = 0;
//定时任务
private ScheduledExecutorService scheduledExecutorService;

private Context context;

//Handler
private Handler handler = new Handler(){

    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        viewPager.setCurrentItem(currentItem);
    }

};

public SlideShowView111(Context context) {
    this(context,null);
}
public SlideShowView111(Context context, AttributeSet attrs) {
    this(context, attrs, 0);
}
public SlideShowView111(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    if (!isInEditMode()) {
        this.context = context;

        initData();
        // 一步任务获取图片
        new GetListTask().execute("");
        if(isAutoPlay){
            startPlay();
        }
    }
}
/**
 * 开始轮播图切换
 */
public void startPlay(){
    if (scheduledExecutorService==null) {
        scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
        scheduledExecutorService.scheduleAtFixedRate(new SlideShowTask(), 4, 4, TimeUnit.SECONDS);
    }
}
/**
 * 停止轮播图切换
 */
private void stopPlay(){
    scheduledExecutorService.shutdown();
}
/**
 * 初始化相关Data
 */
private void initData(){
    imageViewsList = new ArrayList<ImageView>();
    dotViewsList = new ArrayList<View>();
}


@Override
public void onClick(View v) {

    int a=v.getId();
    switch (a){
        case -1:
            Toast.makeText(getContext(),"你摸了1",Toast.LENGTH_SHORT).show();
            break;
        case 1:
            Toast.makeText(getContext(),"你摸了2",Toast.LENGTH_SHORT).show();
            break;
        case 2:
            Toast.makeText(getContext(),"你摸了3",To
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值