-------------------------Viewpager布局-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<android.support.v4.view.ViewPager android:id="@+id/Vp" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1"></android.support.v4.view.ViewPager> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/one" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="一" /> <Button android:id="@+id/two" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="二" /> <Button android:id="@+id/three" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="三" /> </LinearLayout> -------------------------------fragment1中布局--------------------------------------------------------------------------------------------------------------MAIN-------------------------------------------------------------------------<android.support.v4.view.ViewPager android:id="@+id/viewpage" android:layout_width="match_parent" android:layout_height="150dp"></android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/Ll" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:orientation="horizontal"></LinearLayout>public class MainActivity extends FragmentActivity implements View.OnClickListener { private ArrayList<Fragment> list; private ViewPager Vp; private Button one, two, three; private ArrayList<Button> buttons; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //找控件 initView(); one.setOnClickListener(this); two.setOnClickListener(this); three.setOnClickListener(this); list = new ArrayList<Fragment>(); Fragment1 fragment1 = new Fragment1(); Fragment2 fragment2 = new Fragment2(); Fragment3 fragment3 = new Fragment3(); list.add(fragment1); list.add(fragment2); list.add(fragment3); Vp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return list.get(position); } @Override public int getCount() { return list.size(); } }); Vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { suibian(position); } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); } private void suibian(int index){ for (int i=0;i<buttons.size();i++){//便利控件的集合,给控件设置颜色 Button button = buttons.get(i); if (index==i) { button.setBackgroundColor(Color.GRAY);//点击按钮变灰颜色 }else { button.setBackgroundColor(Color.WHITE);//不点击按钮是白颜色 } } } @Override public void onClick(View view) {//如果点击按钮就显示当前界面信息 switch (view.getId()){ case R.id.one: Vp.setCurrentItem(0); break; case R.id.two: Vp.setCurrentItem(1); break; case R.id.three: Vp.setCurrentItem(2); break; } } private void initView() {//找控件 Vp = (ViewPager) findViewById(R.id.Vp); one = (Button) findViewById(R.id.one); two = (Button) findViewById(R.id.two); three = (Button) findViewById(R.id.three); buttons = new ArrayList<Button>();//把控件放入集合中 buttons.add(one); buttons.add(two); buttons.add(three); } }---------------------------------------------------Viewpager适配器--------------------------------------------------------------public class MyAdapter extends PagerAdapter {//viewpager适配器 private List<String> list; private Context context; public MyAdapter(List<String> list, Context context) { this.list = list; this.context = context; } @Override public int getCount() { return Integer.MAX_VALUE;//设置最大值 } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imageView = new ImageView(context); //加载图片 ImageLoader.getInstance().displayImage(list.get(position % list.size()), imageView); container.addView(imageView); return imageView; } }-----------------------------在fragment1中-----------------------------------------------------------------------------------------------------public class Fragment1 extends Fragment { private View view; private LinearLayout linearLayout; private ViewPager viewPager; private List<String> list; //定义一个变量记住前一个点的位置 private int oldPostion = 0; //定义一个初始量 private int pageIndex = 0; //图片网址 private String img1 = "http://d.5857.com/hyxhn_170119/001.jpg"; private String img2 = "http://d.5857.com/tr_170119/001.jpg"; private String img3 = "http://d.5857.com/ts_170119/001.jpg"; private String img4 = "http://d.5857.com/hyxhn_160829/002.jpg"; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); viewPager.setCurrentItem(pageIndex); } }; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment01, container, false); return view; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //准备图片数据 list = Arrays.asList(img1, img2, img3, img3, img4); initView(); autoPlay(); } private void autoPlay() { new Thread() { @Override public void run() { super.run(); while (true) { try { Thread.sleep(3000); pageIndex++; handler.sendEmptyMessage(0); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); } private void initView() { linearLayout = (LinearLayout) view.findViewById(R.id.Ll); viewPager = (ViewPager) view.findViewById(R.id.viewpage); viewPager.setAdapter(new MyAdapter(list, getActivity())); for (int i = 0; i < list.size(); i++) { View doView = new View(getActivity());//设置小圆点 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(30, 30);//设置小圆点的宽高 params.leftMargin = 10;//设置间距 params.rightMargin = 10; doView.setLayoutParams(params); if (i == 0) { doView.setBackgroundResource(R.drawable.xuanzhong);//设置小圆点图片选中 } else { doView.setBackgroundResource(R.drawable.weixuan);//设置小圆点图片不选中 } linearLayout.addView(doView); } //为ViewPage添加一个页面改变的监听 viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { linearLayout.getChildAt(position % list.size()).setBackgroundResource(R.drawable.xuanzhong); linearLayout.getChildAt(oldPostion % list.size()).setBackgroundResource(R.drawable.weixuan); //更新圆点信息 oldPostion = position; } @Override public void onPageScrollStateChanged(int state) { } }); } }------------------------imageloader加载图片------------------------------------------------------------------------------------------public class App extends Application { @Override public void onCreate() { super.onCreate(); initImageLoader(); } public void initImageLoader() { //设置ImageLoader的配置信息 ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(App.this) .memoryCacheExtraOptions(480, 800) //缓存图片最大的长和宽 .threadPriority(2) //线程池的数量 .memoryCacheSizePercentage(4) // default .memoryCacheSize(2 * 1024 * 1024)//设置内存缓存区的大小 .diskCacheSize(50 * 1024 * 1024)//设置SD卡缓存区大小 .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default .writeDebugLogs()//打开日志neirong .build(); //通过单例的模式,拿到对象,设置我们自定义配置的ImageLoader的配置信息 ImageLoader.getInstance().init(config); } } 注意:不配置的话不会加载图片------------------------------------------------------------------------------------------------------------------------------------<application android:name=".App"
所有的布局