ViewPager实现程序引导界面
2016-04-10 18:11
633 查看
学艺不精,采用最笨也是最简单方法实现程序引导界面
activity_main
MainActivity
layout_4(1,2,3)
效果图
activity_main
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.viewpagertest.MainActivity" > <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="wrap_content" android:layout_height="wrap_content" > </android.support.v4.view.ViewPager> <LinearLayout android:layout_width="40dp" android:layout_height="wrap_content" android:layout_gravity="bottom|center" android:paddingBottom="20dp" > <ImageView android:id="@+id/dot1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/page_indicator_focused" /> <ImageView android:id="@+id/dot2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/page_indicator_unfocused" /> <ImageView android:id="@+id/dot3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/page_indicator_unfocused" /> <ImageView android:id="@+id/dot4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/page_indicator_unfocused" /> </LinearLayout> </FrameLayout>
MainActivity
package com.example.viewpagertest; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; 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; public class MainActivity extends Activity implements OnPageChangeListener { private ViewPager viewPager; private ArrayList<View> views = new ArrayList<View>(); private ImageView imgDot1, imgDot2, imgDot3, imgDot4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.viewpager); initImgDots(); initViews(); viewPager.setAdapter(new MyPagerAdapter(views)); viewPager.setOnPageChangeListener(this); } /** * 加载小圆点 */ private void initImgDots() { // TODO Auto-generated method stub imgDot1 = (ImageView) findViewById(R.id.dot1); imgDot2 = (ImageView) findViewById(R.id.dot2); imgDot3 = (ImageView) findViewById(R.id.dot3); imgDot4 = (ImageView) findViewById(R.id.dot4); } // 加载视图 private void initViews() { views.add(getLayoutInflater().inflate(R.layout.layout_1, null)); views.add(getLayoutInflater().inflate(R.layout.layout_2, null)); views.add(getLayoutInflater().inflate(R.layout.layout_3, null)); views.add(getLayoutInflater().inflate(R.layout.layout_4, null)); } class MyPagerAdapter extends PagerAdapter { private ArrayList<View> views; public MyPagerAdapter(ArrayList<View> views) { this.views = views; } @Override public int getCount() { // TODO Auto-generated method stub return views.size(); } // 实例化选项卡 public Object instantiateItem(ViewGroup container, int position) { View v = views.get(position); container.addView(v); return v; } // 删除选项卡 public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(views.get(position)); } // 判断视图是否为返回的对象 public boolean isViewFromObject(View view, Object o) { // TODO Auto-generated method stub return view == o; } // 至少要实现以上四个方法:getCount、instantiateItem、destroyItem、isViewFromObject } /* * (non-Javadoc) * * @see android.support.v4.view.ViewPager.OnPageChangeListener# * onPageScrollStateChanged(int) */ @Override public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see * android.support.v4.view.ViewPager.OnPageChangeListener#onPageScrolled * (int, float, int) */ @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see * android.support.v4.view.ViewPager.OnPageChangeListener#onPageSelected * (int) */ @Override public void onPageSelected(int position) {
//判断当前选项卡位置,所在位置小圆点设置为选中,其他为未选中 if (viewPager.getCurrentItem() == 1) { imgDot2.setImageResource(R.drawable.page_indicator_focused); imgDot3.setImageResource(R.drawable.page_indicator_unfocused); imgDot4.setImageResource(R.drawable.page_indicator_unfocused); imgDot1.setImageResource(R.drawable.page_indicator_unfocused); } else if (viewPager.getCurrentItem() == 2) { imgDot3.setImageResource(R.drawable.page_indicator_focused); imgDot1.setImageResource(R.drawable.page_indicator_unfocused); imgDot2.setImageResource(R.drawable.page_indicator_unfocused); imgDot4.setImageResource(R.drawable.page_indicator_unfocused); } else if (viewPager.getCurrentItem() == 3) { imgDot4.setImageResource(R.drawable.page_indicator_focused); imgDot1.setImageResource(R.drawable.page_indicator_unfocused); imgDot2.setImageResource(R.drawable.page_indicator_unfocused); imgDot3.setImageResource(R.drawable.page_indicator_unfocused); } else if (viewPager.getCurrentItem() == 0) { imgDot1.setImageResource(R.drawable.page_indicator_focused); imgDot2.setImageResource(R.drawable.page_indicator_unfocused); imgDot3.setImageResource(R.drawable.page_indicator_unfocused); imgDot4.setImageResource(R.drawable.page_indicator_unfocused); } } }
layout_4(1,2,3)
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ImageView android:id="@+id/img4" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:src="@drawable/d" /> <Button android:id="@+id/btn_enter" android:layout_width="120dp" android:layout_height="wrap_content" android:text="开启新世界" android:layout_gravity="bottom|center" android:layout_marginBottom="50dp"/> </FrameLayout>
效果图
相关文章推荐
- 程序猿怎样变身IT讲师
- Linux内核分析作业7:Linux内核如何装载和启动一个可执行程序
- [算法 basic]----排序算法
- 读收获不止oracle--表设计有感
- Vector和Set类
- mysql中运算符小结
- 真机运行、手机运行、真机联调常见问题
- Two Sum
- 通达OA 公共文件柜二次开发添加管理信息(图文)
- Log4Net使用详解1
- Eclipse上安装GIT插件EGit
- 挖坟字符串知识点
- 杨辉三角的数组实现
- 最长回文子串、回文子序列、公共子序列
- 【总结】PHP常见面试题汇总(四)。。。
- SQLite学习笔记(不定期更新)
- 进程间通信之命名管道
- Servlet入门(二)延伸--深入研究Servlet线程安全性问题
- Openstack学习笔记(六)-Ubuntu下安装JDK和Eclipse
- stm32芯片上两个点 那个是一脚