继上一次写的 进行一次大调整,
效果图:
首先 看下自定义循环控件代码, 这个控件已经封装好了, 直接可以拿来用, 我会在下面 的文章介绍使用方法
package com.example.administrator.bbactivity.banner;
import android.content.Context;
import android.os.AsyncTask;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
/**
* Created by yahui.hu on 2016/4/25.
*/
public class LoopBanner<T> extends RelativeLayout {
private ViewPager mViewPager;
private LinearLayout mIndicator;
private int mDp5;
private List<T> mDatas;
private int[] mIndicators;
private long mLoopTime;
private LoopBaseViewHold mViewHold;
private boolean mAutoLoop;
private boolean mCanLoop;
private int mDataSize;
private LoopAdapter mLoopAdapter;
private int mCurrentPosition;
private Context mContext;
private List<TextView> mIndicatorTextViews;
private int mIndicatorWidth;
private int mIndicatorSpace;
private Timer mTimer;
public LoopBanner(Context context) {
super(context);
}
public LoopBanner(Context context, AttributeSet attrs) {
super(context, attrs);
initViews(context);
}
public LoopBanner(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
private void initViews(Context context) {
mContext = context;
mDp5 = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, context.getResources().getDisplayMetrics());
mIndicatorWidth = mDp5 * 2;
mIndicatorSpace = mDp5 / 5;
mT