`

viewFlow实现类似淘宝的自动播放

阅读更多

 

ImageAdapter.java
/*
 * Copyright (C) 2011 Patrik �kerfeldt
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.viewflowtest.cjy;

import java.util.List;

import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.Toast;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.yooeee.ziyoutong.R;

public class ImageAdapter extends BaseAdapter {
//	private DisplayImageOptions options;
	protected ImageLoader imageLoader;
	private Context mContext;
	private List<String> list;
	private LayoutInflater mInflater;

	public ImageAdapter(Context context,List<String> list) {
		mContext = context;
		this.list = list;
		imageLoader = imageLoader.getInstance();
//		options = new DisplayImageOptions.Builder().showStubImage(R.drawable.ic_launcher).showImageForEmptyUri(R.drawable.ic_launcher).showImageOnFail(R.drawable.ic_launcher).cacheInMemory().cacheOnDisc().displayer(new RoundedBitmapDisplayer(15)).build();
		mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
	}

	@Override
	public int getCount() {
		return Integer.MAX_VALUE;   //返回很大的值使得getView中的position不断增大来实现循环
	}

	@Override
	public Object getItem(int position) {
		return position;
	}

	@Override
	public long getItemId(int position) {
		return position;
	}

	@Override
	public View getView(final int position, View convertView, ViewGroup parent) {
		if (convertView == null) {
			convertView = mInflater.inflate(R.layout.image_item, null);
		}
		ImageView imageView = ((ImageView) convertView.findViewById(R.id.imgView));
		imageLoader.displayImage(list.get(position%list.size()), imageView);
		convertView.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				Toast.makeText(mContext, "" + position, Toast.LENGTH_SHORT).show();
//				Intent intent = new Intent(mContext,ABSclass.class);
				Bundle bundle = new Bundle();
				bundle.putString("image_id", list.get(position%list.size()));
//				intent.putExtras(bundle);
//				mContext.startActivity(intent);
			}
		});
		return convertView;
	}

}
 
application中
@Override
	public void onCreate() {
		// 初始化下载图片jar包
		initImageLoader(getApplicationContext());
	}

	public static void initImageLoader(Context context)
	{
		ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context).threadPriority(Thread.NORM_PRIORITY - 2).denyCacheImageMultipleSizesInMemory().discCacheFileNameGenerator(new Md5FileNameGenerator()).tasksProcessingOrder(QueueProcessingType.LIFO).enableLogging().build();

		ImageLoader.getInstance().init(config);
	}
 在你用的activity中加入
  viewFlow = (ViewFlow)findViewById(R.id.viewflow);
        viewFlow.setAdapter(new ImageAdapter(this));
        viewFlow.setmSideBuffer(3); // 实际图片张数, 我的ImageAdapter实际图片张数为3
        
        CircleFlowIndicator indic = (CircleFlowIndicator) findViewById(R.id.viewflowindic);
        viewFlow.setFlowIndicator(indic);
        viewFlow.setTimeSpan(4500);
        viewFlow.setSelection(3*1000);	//设置初始位置
        viewFlow.startAutoFlowTimer();  //启动自动播放
 
传个源码和网络获取图片的jar包

 

 

分享到:
评论

相关推荐

    viewflow实现类似淘宝,网易新闻的横幅banner,可循环自动播放

    viewflow本身还没有实现循环和自动播放功能。我这里在viewflow源码的基础上加了点代码以实现这两个功能。 说viewflow没有实现循环这话不太对,其实要看你的adapter怎么写。因为viewflow是AdapterView。 要实现...

    viewflow实现自动无限循环播放

    在原生的ViewFlow基础上进行了一些修改,我们可以实现自动无限循环播放的功能,这在展示轮播图、产品列表或任何需要连续滚动内容的应用场景中非常实用。 首先,让我们了解ViewFlow的基本用法。ViewFlow的核心在于它...

    ViewFlow实现淘宝轮播图广告自动滑动

    在"ViewFlow实现淘宝轮播图广告自动滑动"的项目中,核心概念是利用ViewFlow库来创建一个可滚动的视图容器,它可以承载多个广告卡片,并自动进行定时滑动,以展示不同的广告内容。这种方式可以提高用户体验,因为用户...

    viewFlow实现自动无限循环移动图片广告

    `ViewFlow`是一个强大的第三方库,它为Android应用提供了类似iOS中的`UIPageViewController`功能,可以方便地实现这种效果。本文将深入探讨如何使用`ViewFlow`来创建自动无限循环移动的图片广告。 首先,了解`...

    android ViewFlow真正实现无限循环播放图片

    修改ViewFlow源码真正实现循环播放图片,无需在适配器中设置getCount为Integer.MAX_VALUE,自动缓存view,避免OOM。本工程为android studio工程,请使用android studio打开。

    android用ViewFlow实现轮播图

    本教程将详细介绍如何利用ViewFlow库来实现一个高效的轮播图功能。 **1. ViewFlow简介** ViewFlow是Android平台上一个轻量级的库,设计用于创建水平滚动视图,它可以方便地展示多个子视图,如ImageView或自定义布局...

    ViewFlow,滑动效果

    ViewFlow是一款专为Android开发者设计的滑动效果库,它提供了简单易用的API,能够帮助开发者轻松实现类似iOS中的UIPageViewController的效果。这个库主要适用于创建那些需要展示多个相似视图并允许用户通过平滑滑动...

    Android仿照京东轮播图(ViewFlow实现)

    在本教程中,我们将探讨如何使用ViewFlow库来实现一个类似于京东APP的轮播图效果。 ViewFlow是一个轻量级的Android库,它提供了一个灵活的视图流控件,使得开发者可以轻松地创建水平滚动的视图布局。这个库非常适合...

    android用ViewFlow实现轮播图功能

    在Android开发中,为了增强用户体验,常常需要实现各种动态效果,其中之一就是轮播图功能。...在实际项目中,你可能还需要添加一些额外的特性,比如添加指示器、自动切换等,这都可以通过扩展ViewFlow和适配器来实现。

    android使用ViewFlow实现图片带焦点左右滑动(定时滑动)

    在本文中,我们将深入探讨如何在Android项目中使用`ViewFlow`来实现图片带焦点的左右滑动,以及如何设置定时自动滑动。 1. **ViewFlow库介绍** `ViewFlow`是一个轻量级的Android库,设计用于展示一系列视图,通过...

    ViewFlow源码

    在这个源码中,ViewFlow被用来实现广告条的自动轮播。这通常通过一个定时任务或 Handler 来实现,每隔一定时间自动切换到下一个视图。开发者可以通过调整这个时间间隔来控制轮播速度。 3. **动态设置图片个数** ...

    自动播放展示栏

    "TopViewFlow"是一个这样的组件,它使用了ViewFlow库来实现顶部自动滚动的效果,类似于网页中的轮播图或者像淘宝首页那样的顶部展示区域。 ViewFlow是一个轻量级的Android库,它提供了方便的方式来展示一个可滚动的...

    ViewFlow类似ViewPager效果

    类似于viewpager, 实现屏幕手势滑动效果,共有几个效果。 解压后,将两个导入,viewflow相当于library,在eclipse中项目右键属性, android设置,有library点击islibrary 。 viewflowsample导入后也是进入 library...

    viewflow加入activity的demo

    ViewFlow是一个轻量级的库,它提供了类似iOS中UIPageControl的效果,允许用户水平滑动浏览多个视图,通常这些视图是由不同的Activity或Fragment组成的。这个demo旨在展示如何将Activity集成到ViewFlow中,以便实现...

    ViewFlow例子

    ViewFlow是一款专为Android平台设计的库,它提供了一种流畅的水平滚动视图,能够帮助开发者轻松创建类似iOS中的UICollectionView或Pinterest应用那样的布局效果。这个库特别适用于展示大量相似内容,如图片、卡片...

    viewflow-视图切换

    ViewFlow库通过其强大的功能和简单易用的API,使得开发者能够快速实现这些效果。 ViewFlow的核心概念是提供了一个可以无限滚动的视图容器,允许用户左右滑动来切换不同的视图。这种设计在很多应用的启动页、设置...

    ViewFlow,一个滑动效果库.zip

    ViewFlow是一个专为Android平台设计的滑动效果库,它为开发者提供了在应用程序中实现平滑、流畅...通过使用ViewFlow,开发者可以快速实现类似Pinterest或Google Play商店的滑动浏览效果,提升应用的交互性和用户体验。

    ViewFlow的例子

    - 交互监听:通过设置监听器,你可以捕捉用户在ViewFlow上的滑动事件,实现相应的业务逻辑。 在处理ViewFlow-PacketTransfer这个压缩包时,你可能需要解压后检查其中的文件结构,找出源码文件并理解它们的作用。...

    Android应用源码之ViewFlow,一个滑动效果库.zip

    在Android开发中,ViewFlow是一个流行且实用的第三方库,它为开发者提供了类似iOS中UIPageControl的效果,即用户可以...对于那些想要在Android应用中实现类似iOS滑动效果的开发者,ViewFlow是一个值得尝试的优秀选择。

Global site tag (gtag.js) - Google Analytics