重点在适配器:
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);
}
}