viewpager用法
来源:互联网 发布:淘宝网优惠 编辑:程序博客网 时间:2024/06/06 08:57
public class ViewPageActivity extends ActionBarActivity { private View page; private Button btnOK; private ViewPager viewPager; private ImageView imageView; private ArrayList<View> pageViews;//存放每页要要显示的view private ImageView[] imageViews;//存放小圆点 private ViewGroup viewPictures; private ViewGroup viewPoints; private SharedPreferences isfirst; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 在实际开发中LayoutInflater这个类还是非常有用的, 它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件, 并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。 利用getLayoutInflater()来实例化inflater */ LayoutInflater inflater = getLayoutInflater(); //pageViews数组用来保存要分页显示的View(即每张图片的.xml布局文件) pageViews=new ArrayList<View>(); //通过inflater.inflate(R.layout.viewpager01, null)来引入View //并把它添加到pageViews数组中 pageViews.add(inflater.inflate(R.layout.viewpager01, null)); pageViews.add(inflater.inflate(R.layout.viewpager02,null)); pageViews.add(inflater.inflate(R.layout.viewpager03,null)); //动态创建存放小圆点的数组imageViews的大小,和保存几个View的数组pageViews的大小一致 imageViews=new ImageView[pageViews.size()]; /*布局文件viewpagers是显示pageViews和imageViews的载体, 即pageViews和imageViews所相关的控件都写在布局文件viewpagers中 */ viewPictures = (ViewGroup) inflater.inflate(R.layout.viewpagers, null); //为图片viewPager和小圆点viewPoints设置监听事件 viewPager = (ViewPager) viewPictures.findViewById(R.id.guidePagers); viewPoints = (ViewGroup) viewPictures.findViewById(R.id.viewPoints); // 添加小圆点导航的图片,即动态添加ImageView for (int i = 0; i < pageViews.size(); i++) { imageView = new ImageView(ViewPageActivity.this); imageView.setLayoutParams(new ViewGroup.LayoutParams(20, 20)); imageView.setPadding(5, 0, 5, 0); // 把小圆点放进数组中 imageViews[i] = imageView; // 默认选中的是第一张图片,此时第一个小圆点是选中状态,其他不是 if (i == 0) imageViews[i].setImageDrawable(getResources().getDrawable( R.drawable.page_indicator_focused)); else imageViews[i].setImageDrawable(getResources().getDrawable( R.drawable.page_indicator_unfocused)); // 将imageviews添加到小圆点视图组 viewPoints.addView(imageViews[i]); } //设置显示viewPictures setContentView(viewPictures); //设置适配器NavigationPageAdapter()继承自PagerAdapter() viewPager.setAdapter(new NavigationPageAdapter()); // 为viewpager添加监听,当view发生滑动变化时的响应 //同样NavigationPageChangeListener()继承自OnPageChangeListener() viewPager.setOnPageChangeListener(new NavigationPageChangeListener()); } // 导航图片view的适配器,必须要实现的是下面四个方法 class NavigationPageAdapter extends PagerAdapter { @Override public int getCount() { return pageViews.size(); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } // 初始化每个Item @Override public Object instantiateItem(View container, int position) { ((ViewPager) container).addView(pageViews.get(position)); //为其中第3个有按钮的View页面添加相应的监听事件 if(position==2){ btnOK=(Button)findViewById(R.id.btnOK); btnOK.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplicationContext(), "点击按钮", Toast.LENGTH_SHORT);// Intent intent = new Intent(ViewPageActivity.this, PicActivity.class);// startActivity(intent); } }); } return pageViews.get(position); // return page; } // 销毁每个Item @Override public void destroyItem(View container, int position, Object object) { ((ViewPager) container).removeView(pageViews.get(position)); } } // viewpager的监听器,主要是onPageSelected要实现 class NavigationPageChangeListener implements ViewPager.OnPageChangeListener { @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int position) { // 循环主要是控制导航中每个小圆点的状态 for (int i = 0; i < imageViews.length; i++) { // 当前view下设置小圆点为选中状态 imageViews[i].setImageDrawable(getResources().getDrawable( R.drawable.page_indicator_focused)); // 其余设置为未选中状态 if (position != i) imageViews[i].setImageDrawable(getResources().getDrawable( R.drawable.page_indicator_unfocused)); } } }}
参考博客:<a target=_blank href="http://blog.csdn.net/alangdangjia/article/details/9054921">点击打开链接</a>
<a target=_blank href="http://www.cnblogs.com/top5/archive/2012/05/04/2482328.html">点击打开链接</a>
<a target=_blank href="http://www.cnblogs.com/weixing/archive/2013/10/11/3363951.html">点击打开链接</a>
0 0
- ViewPager用法
- Viewpager用法
- ViewPager 用法
- viewpager用法
- viewpager的用法总结
- ViewPager的用法
- ViewPager的用法
- Android ViewPager用法
- ViewPager + Fragment 用法总结
- ViewPager的用法
- ViewPager的基本用法
- ViewPager的用法(1)
- ViewPager入门级用法
- ViewPager的用法
- Viewpager的用法
- ViewPager简单用法
- ViewPager高级用法大全
- ViewPager的用法
- 世界各国网络域名后缀
- 开始正式写博客的第一天
- hdu 1154
- 虚拟光驱DAEMONTools 3.47特别版/汇编版/珍藏版
- mysql安装完成后启动详解
- viewpager用法
- mysql:数据库和数据表的管理
- 建立渲染管线
- 2016京东在线笔试(编程题之一)
- 根据文字内容和设定maxSize计算文字的width、height
- javascript中的变量对象和活动对象
- 幸福的往事
- 测试用例的编写
- hdu5459Jesus Is Here