<p>package com.example.demo;</p><p>import java.util.concurrent.atomic.AtomicInteger;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;</p><p>public class MainActivity extends Activity implements OnPageChangeListener{
public AtomicInteger what = new AtomicInteger(0);
private ViewPager viewPager;
private ImageView[] tips = null;
private ViewGroup group = null;
private ImageView[] imageViews = null;
private static final int MSG_CHANGE_PHOTO = 1;
private static final int PHOTO_CHANGE_TIME = 2000;
public int imageSource[]={R.drawable.little_horse,R.drawable.p1,R.drawable.p2};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViewPager();
viewPager.setAdapter(new MyAdapter());
viewPager.setOnPageChangeListener(this);
viewPager.setCurrentItem(imageViews.length*100);
mHandler.sendEmptyMessageDelayed(MSG_CHANGE_PHOTO, PHOTO_CHANGE_TIME);
}</p><p>
private Handler mHandler = new Handler() {
@Override
public void dispatchMessage(Message msg) {
switch (msg.what) {
case MSG_CHANGE_PHOTO:
int index = viewPager.getCurrentItem();
viewPager.setCurrentItem(index + 1);
mHandler.sendEmptyMessageDelayed(MSG_CHANGE_PHOTO,
PHOTO_CHANGE_TIME);
break;
}
super.dispatchMessage(msg);
}
};
private void initViewPager(){
viewPager = (ViewPager) findViewById(R.id.viewPager);
group = (ViewGroup)findViewById(R.id.viewGroup);
imageViews = new ImageView[imageSource.length];
for(int i=0; i<imageSource.length ;i++)
{
ImageView imageView = new ImageView(this);
imageView.setBackgroundResource(imageSource[i]);
imageViews[i] = imageView;
}
tips = new ImageView[imageSource.length];
for(int i=0; i<tips.length; i++){
ImageView imageView = new ImageView(this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(12,12);
lp.setMargins(10, 10, 30, 20);
imageView.setLayoutParams(lp);
tips[i] = imageView;
if(i == 0){
tips[i].setBackgroundResource(R.drawable.page_indicator_focused);
}else{
tips[i].setBackgroundResource(R.drawable.page_indicator_unfocused);
}
group.addView(imageView);
}
}
public class MyAdapter extends PagerAdapter{
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public void destroyItem(View container, int position, Object object) {
// ((ViewPager)container).removeView(imageViews[position % imageViews.length]);
}
@Override
public Object instantiateItem(View container, int position) {
try {</p><p> ((ViewPager)container).addView(imageViews[position % imageViews.length],0);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return imageViews[position % imageViews.length];
}
}
</p><p> @Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}</p><p>
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}</p><p> @Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
setImageBackground(arg0 % (imageSource.length));
}
private void setImageBackground(int selectItems){
for(int i=0; i<imageSource.length; i++){
if(i == selectItems){
tips[i].setBackgroundResource(R.drawable.page_indicator_focused);
}else{
tips[i].setBackgroundResource(R.drawable.page_indicator_unfocused);
}
}
}</p><p> </p><p>}
</p>
Viewpager 自动左右无线滑动 手动滑动
最新推荐文章于 2021-11-12 10:21:29 发布