1、导入相关类库:
CircleFlowIndicator.class(焦点)、FlowIndicator.class、ViewFlow.class (资源包已经集成)
2、自定义适配器:ImageAdapter.class
/*
* 数据装载类
*/
public class ImageAdapter extends BaseAdapter {
private LayoutInflater mInflater;
private static final int[] ids = {R.drawable.test1, R.drawable.test2, R.drawable.test3 };
public ImageAdapter(Context context) {
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(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflater.inflate(R.layout.image_item, null);
}
((ImageView) convertView.findViewById(R.id.imgView)).setImageResource(ids[position%ids.length]);
return convertView;
}
}
3、调用
/**
* 程序入口类
*
* @author Alan
*
*/
public class ViewFlowTestActivity extends Activity {
private ViewFlow viewFlow;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
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.setSelection(3 * 1000); // 设置初始位置
viewFlow.startAutoFlowTimer(); // 启动自动播放
}
//2.2系统以下都得加这个
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
viewFlow.onConfigurationChanged(newConfig);
}
}
4、配置文件 main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.viewflowtest.cjy"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
android:orientation="vertical" >
<FrameLayout
android:id="@+id/framelayout"
android:layout_width="fill_parent"
android:layout_height="150dip"
android:background="#ffffff" >
<org.taptwo.android.widget.ViewFlow
android:id="@+id/viewflow"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</org.taptwo.android.widget.ViewFlow>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="#88252525"
android:gravity="center"
android:padding="3dip" >
<org.taptwo.android.widget.CircleFlowIndicator
android:id="@+id/viewflowindic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom"
android:padding="2dip"
app:activeColor="#ff0000"
app:activeType="fill"
app:circleSeparation="20dip"
app:inactiveColor="#ffffff"
app:inactiveType="fill"
app:radius="4dip" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
6、资源下载地址:http://download.csdn.net/detail/shi508181017/5877635