天天看點

viewpage顯示伺服器圖檔,viewpage輪播圖

public class MainActivity extends AppCompatActivity implementsViewPager.OnPageChangeListener {privateViewPager viewPager;private int[] imageResIds;private ArrayListimageViewList;private ArrayListpointViews;privateLinearLayout ll_point_container;privateString[] contentDesc;privateTextView tv_desc;private int lastEnablePoint = 0;private boolean isRunning = true;privateHandler handler;privateRunnable runnable;

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);//初始化布局 View 視圖

initViews();//Model 資料

initData();//Controller 控制器

initAdapter();//1.

handler = newHandler();

runnable= newRunnable() {

@Overridepublic voidrun() {

viewPager.setCurrentItem(viewPager.getCurrentItem()+ 1);

handler.postDelayed(this, 2000);

}

};//2//mTimer.schedule(mTimerTask, 2000, 2000);//3//handler.postDelayed( runnable, 2000 );//開啟輪詢//new Thread() {//public void run() {//while(isRunning) {//try {//Thread.sleep(2000);//} catch (InterruptedException e) {//e.printStackTrace();//}// //往下跳一位//runOnUiThread(new Runnable() {//@Override//public void run() {//viewPager.setCurrentItem(viewPager.getCurrentItem() + 1);//}//});//}//

//}//}.start();

}

@Overrideprotected voidonPause() {super.onPause();

handler.removeCallbacksAndMessages(null);

}

@Overrideprotected voidonResume() {super.onResume();

handler.postDelayed( runnable,2000);

}

@Overrideprotected voidonDestroy() {super.onDestroy();

isRunning= false;

}private voidinitViews() {

viewPager=(ViewPager) findViewById(R.id.viewpager);

viewPager.setOnPageChangeListener(this);//設定滾動更新

viewPager.setOnTouchListener(newView.OnTouchListener() {

@Overridepublic booleanonTouch(View v, MotionEvent event) {switch(event.getAction()) {caseMotionEvent.ACTION_DOWN:caseMotionEvent.ACTION_MOVE:

handler.removeCallbacksAndMessages(null);break;caseMotionEvent.ACTION_UP:

handler.postDelayed( runnable,2000);break;

}return false;

}

});

tv_desc=(TextView) findViewById(R.id.tv_desc);

ll_point_container=findViewById(R.id.ll_point_container);

}private voidinitAdapter() {

ll_point_container.getChildAt(0).setEnabled(true);

tv_desc.setText(contentDesc[0]);//設定擴充卡

viewPager.setAdapter(newMyAdapter());//預設設定到中間的某個位置

int pos = Integer.MAX_VALUE / 2;//viewPager.setCurrentItem(pos - 3);

viewPager.setCurrentItem(0);

}private voidinitData() {//初始化要顯示的資料//圖檔資源id數組

imageResIds = new int[] { R.drawable.lunbo1, R.drawable.lunbo2, R.drawable.lunbo3,

R.drawable.lunbo4};//文本描述

contentDesc = new String[] { "鞏俐不低俗,我就不能低俗", "樸樹又回來啦!再唱經典老歌引萬人大合唱","揭秘北京電影如何更新", "樂視網TV版大派送", "熱血屌絲的反殺"};

imageViewList= new ArrayList();

pointViews= new ArrayList();

ImageView imageView;

View pointView;

LinearLayout.LayoutParams layoutParams;for (int i = 0; i < imageResIds.length; i++) {

imageView= new ImageView(this);

imageView.setBackgroundResource(imageResIds[i]);

imageViewList.add(imageView);//加小白點,訓示器

pointView = new View(this);

pointView.setBackgroundResource(R.drawable.select);

layoutParams= new LinearLayout.LayoutParams(7, 7);if (i != 0) {

layoutParams.leftMargin= 10;

}

pointView.setEnabled(false);

ll_point_container.addView(pointView, layoutParams);

}

}class MyAdapter extendsPagerAdapter {

@Overridepublic intgetCount() {returnInteger.MAX_VALUE;

}//3、指定複用的判斷邏輯

@Overridepublic booleanisViewFromObject(View view, Object object) {//當滑到新的條目,又傳回來,view是否可以被複用

return view ==object;

}//1、傳回要顯示的條目内容,建立條目

@Overridepublic Object instantiateItem(ViewGroup container, intposition) {//container:容器:ViewPager//position:目前要顯示的條目的位置

position = position % 4;

ImageView imageView=imageViewList.get(position);//a、把view對象添加到container中

container.addView(imageView);//b、把view對象傳回給架構,擴充卡

return imageView; //必須要重寫,否則抛異常

}//2、銷毀條目

@Overridepublic void destroyItem(ViewGroup container, intposition, Object object) {//object 要銷毀的對象

container.removeView((View) object);

}

}

@Overridepublic void onPageScrolled(int position, floatpositionOffset,intpositionOffsetPixels) {//滾動時調用

}

@Overridepublic void onPageSelected(intposition) {//新條目被選中時調用

position = position % 4;

tv_desc.setText(contentDesc[position]);//把之前的禁用,把最新的啟用

ll_point_container.getChildAt(lastEnablePoint).setEnabled(false);

ll_point_container.getChildAt(position).setEnabled(true);

lastEnablePoint=position;

}

@Overridepublic void onPageScrollStateChanged(intstate) {//滾動狀态變化時調用

}

}