1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
package com.qefee.pj.testviewpager;
import android.graphics.Color; import android.os.Bundle; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.TextView;
public class MainActivity extends AppCompatActivity { * log tag for MainActivity */ private static final String TAG = "MainActivity";
ViewPager viewPager;
String[] texts = { "hello", "world", "1", "2" };
TextView[] textViews;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
int size = initSize(); initTextViews(size); initViewPager(); }
private void initViewPager() { viewPager = (ViewPager) findViewById(R.id.viewPage);
viewPager.setAdapter(new PagerAdapter() { @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, int position) { Log.i(TAG, "instantiateItem: instantiateItem + position = " + position); TextView t = textViews[position % textViews.length]; container.addView(t);
return t; }
@Override public void destroyItem(ViewGroup container, int position, Object object) { Log.i(TAG, "destroyItem: + position = " + position); container.removeView((View) object); } });
viewPager.setCurrentItem(texts.length * 1000000); }
private void initTextViews(int size) { TextView[] tvs = new TextView[size];
for (int i = 0; i < tvs.length; i++) { tvs[i] = new TextView(this); tvs[i].setText(texts[i % texts.length]);
int color = 0;
switch (i % texts.length) { case 0: color = Color.parseColor("#aaaaaa"); break; case 1: color = Color.parseColor("#cccccc"); break; case 2: color = Color.parseColor("#777777"); break; case 3: color = Color.parseColor("#999999"); break; default: break; }
tvs[i].setBackgroundColor(color); ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); tvs[i].setLayoutParams(layoutParams); textViews = tvs; } }
private int initSize() { int size; if (texts.length > 3) { size = texts.length; } else { size = texts.length * 2; } return size; } }
|