android ViewPager实现的轮播图广告自定义视图,网络获取图片和数据

public class SlideShowAdView extends FrameLayout {

    //轮播图图片数量
    private static int IMAGE_COUNT = 3;
    //自动轮播的时间间隔
    private final static int TIME_INTERVAL = 5;
    //自动轮播启用开关
    private final static boolean isAutoPlay = false;
   
    //自定义轮播图的资源ID
    private List imageAd;
    //放轮播图片的ImageView 的list
    private List imageViewsList;
    //放圆点的View的list
    private List dotViewsList;
   
    private ViewPager viewPager;
   
    private DisplayImageOptions options;
   
    private Context context;
    //当前轮播页
    private int currentItem  = 0;
    //定时任务
    private ScheduledExecutorService scheduledExecutorService;
    //Handler
    private Handler handler = new Handler(){

     
        @Override
        public void handleMessage(Message msg) {
            // TODO Auto-generated method stub
            super.handleMessage(msg);
            viewPager.setCurrentItem(currentItem);
        }
       
    };
   
    private void initNeedUtil()
    {
     options = new DisplayImageOptions.Builder()
  .showStubImage(R.drawable.jky_jzsbd)
  // 设置图片下载期间显示的图片
  .showImageForEmptyUri(R.drawable.jky_jzsbd)
  // 设置图片Uri为空或是错误的时候显示的图片
  .showImageOnFail(R.drawable.jky_jzsbd)
  // 设置图片加载或解码过程中发生错误显示的图片
  .cacheInMemory(true)
  // 设置下载的图片是否缓存在内存中
  .cacheOnDisc(true)
  // 设置下载的图片是否缓存在SD卡中
  .imageScaleType(ImageScaleType.NONE)
  .bitmapConfig(Bitmap.Config.RGB_565)// 防止内存溢出的,图片太多就这这个。还有其他设置
  // .displayer(new RoundedBitmapDisplayer(20)) // 设置成圆角图片
  .build();

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
  context).threadPriority(Thread.NORM_PRIORITY - 2)
  .denyCacheImageMultipleSizesInMemory()
  .discCacheFileNameGenerator(new Md5FileNameGenerator())
  .memoryCache(new LruMemoryCache(2 * 1024 * 1024))
  .memoryCacheSize(2 * 1024 * 1024)// 缓存大小
  .discCacheSize(50 * 1024 * 1024)// 存储卡缓存大小
  .discCacheFileCount(100)// 文件数量
  .tasksProcessingOrder(QueueProcessingType.LIFO).build();
ImageLoader.getInstance().init(config);// 创建配置过得DisplayImageOption对象

    }
   
    public SlideShowAdView(Context context) {
        this(context,null);
        // TODO Auto-generated constructor stub
        this.context=context;
        initNeedUtil();
    }
    public SlideShowAdView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
        // TODO Auto-generated constructor stub
        this.context=context;
        initNeedUtil();
    }
    public SlideShowAdView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
        this.context=context;
        initNeedUtil();
        initData(context);
    }
   
    private void startPlay(){
        scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
        scheduledExecutorService.scheduleAtFixedRate(new SlideShowTask(), 1, 4, TimeUnit.SECONDS);
    }
   
    private void stopPlay(){
        scheduledExecutorService.shutdown();
    }
   
    private void initData(Context context){
        imageViewsList = new ArrayList();
        dotViewsList = new ArrayList();
       
        try {
         // 开一条子线程加载网络数据
         Runnable runnable = new Runnable() {
          public void run() {
           try {
            imageAd=new ProductUtils().GetIndexAdInfo();
            // 发送消息,并把jsonArray结合对象传递过去
     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值