这实例很多人仿做,好实例还是不容错过!最重要是素材容易拿~

效果:

默认3页面的切换,最后一个页面带按钮,点击进入另外一个页面

思路:

1、准备5个布局页面,1个为主函数布局页面,3个为切换的页面(其一带按钮),1个为按钮点击进入的页面(这个需要Activity)。

2、用适配器绑定相应的view,设置适配器

3、制作点点,设置监听事件控制点点

4、设置按钮的点击事件

主要代码:

主布局

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical" >
  6.  
  7. <android.support.v4.view.ViewPager
  8. android:id="@+id/viewPager"
  9. android:layout_width="match_parent"
  10. android:layout_height="wrap_content"
  11. >
  12. </android.support.v4.view.ViewPager>
  13. </LinearLayout>

有按钮的切换页布局:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:background="@drawable/whatsnew_page01"
  6. >
  7.  
  8. <Button
  9. android:id="@+id/comein"
  10. android:layout_width="120dp"
  11. android:layout_height="wrap_content"
  12. android:padding="10dp"
  13. android:text="进入微信"
  14. android:textColor="#ffffff"
  15. android:layout_centerInParent="true"
  16. android:background="@drawable/btn_selector"
  17. android:onClick="startbutton"
  18. />
  19.  
  20. </RelativeLayout>

程序代码:

  1. public class MainActivity extends Activity {
  2. private ViewPager viewpager;
  3. private ArrayList<View>views ;
  4.  
  5. //点点
  6. private ViewGroup listgroup;
  7. private ImageView imageview;
  8. private ImageView[] imageviewArr;
  9.  
  10. @Override
  11. protected void onCreate(Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. //设置无标题栏
  14. requestWindowFeature(Window.FEATURE_NO_TITLE);
  15.  
  16. setContentView(R.layout.start);
  17.  
  18. //内容
  19. viewpager = (ViewPager) findViewById(R.id.viewpager);
  20. views = new ArrayList<View>();
  21.  
  22. //把view加入数组
  23. LayoutInflater lf = getLayoutInflater();
  24. View v1 =lf.inflate(R.layout.w1, null);
  25. View v2 =lf.inflate(R.layout.w2, null);
  26. View v3 =lf.inflate(R.layout.w3, null);
  27. views.add(v1);
  28. views.add(v2);
  29. views.add(v3);
  30.  
  31. /*
  32. * 把点加入ViewGroup
  33. * */
  34. listgroup = (ViewGroup) findViewById(R.id.listgroup);
  35. //有多少个界面数组就包含多少个点
  36. imageviewArr = new ImageView[views.size()];
  37. //生成每个点
  38. for(int i=0;i<views.size();i++){
  39. imageview = new ImageView(MainActivity.this);
  40. //设置点的宽和高
  41. imageview.setLayoutParams(new LayoutParams(9,9));
  42. //设置点padding(左,上,右,下)
  43. imageview.setPadding(20, 0, 20, 0);
  44.  
  45. //放入数组
  46. imageviewArr[i]=imageview;
  47.  
  48. //设置第一个点样式为选中状态,其他为默认状态
  49. if(i==0){
  50. imageview.setBackgroundResource(R.drawable.page_indicator_focused);
  51. }else{
  52. imageview.setBackgroundResource(R.drawable.page_indicator_unfocused);
  53. }
  54.  
  55. listgroup.addView(imageviewArr[i]);
  56.  
  57. }
  58.  
  59. //绑定适配器
  60. viewpager.setAdapter(new ViewPagerAdapter());
  61.  
  62. //设置监听器,切换时,点样式同步切换
  63. viewpager.setOnPageChangeListener(new listChangerListener());
  64. }
  65.  
  66. /*
  67. * viewpager的适配器
  68. * */
  69. public class ViewPagerAdapter extends PagerAdapter{
  70. //实现PagerAdapter至少要覆盖以下方法
  71. @Override
  72. //返回窗体界面数
  73. public int getCount() {
  74. // TODO Auto-generated method stub
  75. return views.size();
  76. }
  77.  
  78. @Override
  79. //判断对象是否生成界面
  80. public boolean isViewFromObject(View arg0, Object arg1) {
  81. // TODO Auto-generated method stub
  82. return arg0==arg1;
  83. }
  84.  
  85. @Override
  86. //销毁一个界面
  87. public void destroyItem(View container, int position, Object object) {
  88. // TODO Auto-generated method stub
  89. ((ViewPager)container).removeView(views.get(position));
  90. }
  91.  
  92. @Override
  93. //初始化界面
  94. public Object instantiateItem(View container, int position) {
  95. // TODO Auto-generated method stub
  96. ((ViewPager)container).addView(views.get(position));
  97. return views.get(position);
  98. }
  99.  
  100. }
  101.  
  102. /*
  103. * viewpager的监听器
  104. * */
  105. public class listChangerListener implements OnPageChangeListener{
  106.  
  107. @Override
  108. public void onPageScrollStateChanged(int arg0) {
  109. // TODO Auto-generated method stub
  110.  
  111. }
  112.  
  113. @Override
  114. public void onPageScrolled(int arg0, float arg1, int arg2) {
  115. // TODO Auto-generated method stub
  116.  
  117. }
  118.  
  119. @Override
  120. public void onPageSelected(int arg0) {
  121. // TODO Auto-generated method stub
  122. for(int i=0;i<imageviewArr.length;i++){
  123. //当前索引为arg0,循环所有点,如果i为当前索引。则i样式为选中状态
  124. imageviewArr[arg0].setBackgroundResource(R.drawable.page_indicator_focused);
  125. if(arg0 !=i){
  126. //否则样式为未选中状态
  127. imageviewArr[i].setBackgroundResource(R.drawable.page_indicator_unfocused);
  128. }
  129. }
  130.  
  131. }
  132.  
  133. }
  134.  
  135. //点击按钮打开新页面
  136. public void startbutton(View v) {
  137. Intent intent = new Intent(MainActivity.this, HomeActivity.class);
  138. startActivity(intent);
  139. MainActivity.this.finish();
  140. }
  141.  
  142. }

>>>>>>>>>>>>>>>>>>实例下载

Android:仿微信开场切换界面的更多相关文章

  1. 转-Android仿微信气泡聊天界面设计

    微信的气泡聊天是仿iPhone自带短信而设计出来的,不过感觉还不错可以尝试一下仿着微信的气泡聊天做一个Demo,给大家分享一下!效果图如下: 气泡聊天最终要的是素材,要用到9.png文件的素材,这样气 ...

  2. Android仿微信气泡聊天界面设计

    微信的气泡聊天是仿iPhone自带短信而设计出来的,不过感觉还不错可以尝试一下仿着微信的气泡聊天做一个Demo,给大家分享一下!效果图如下: 气泡聊天最终要的是素材,要用到9.png文件的素材,这样气 ...

  3. Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等

    仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 微信 微信 微信 ...

  4. Android 仿微信小视频录制

    Android 仿微信小视频录制 WechatShortVideo和WechatShortVideo文章

  5. 实现了在android实现左右滑动切换界面的效果

    这是实现了在android实现左右滑动切换界面的效果,该效果的源码下载,请到源码天堂下载吧,喜欢的朋友可以研究一下. 布局文件 <?xml version="1.0" enc ...

  6. Android仿微信界面

    效果图 原理介绍 1.先绘制一个颜色(例如:粉红) 2.设置Mode=DST_IN 3.绘制我们这个可爱的小机器人 回答我,显示什么,是不是显示交集,交集是什么?交集是我们的小机器人的非透明区域,也就 ...

  7. android仿微信红包动画、Kotlin综合应用、Xposed模块、炫酷下拉视觉、UC浏览器滑动动画等源码

    Android精选源码 仿微信打开红包旋转动画 使用Kotlin编写的Android应用,内容你想象不到 Android手机上的免Root Android系统日志Viewer 一个能让微信 Mater ...

  8. Android仿微信拍摄短视频

    近期做项目需要添加上传短视频功能,功能设置为类似于微信,点击开始拍摄,设置最长拍摄时间,经过研究最终实现了这个功能,下面就和大家分享一下,希望对你有帮助. 1.视频录制自定义控件: /** * 视频播 ...

  9. jquery 仿手机屏幕切换界面效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. CSS样式三

    CSS表格样式 border-collapse:表格边线合并 caption-side: 属性值: top:设置表格的标题在表格的上方(默认效果) bottom:设置表格的标题在表格的下方 样式代码: ...

  2. 产品经理常用工具Axure、Visio、Mindmanager使用解析(摘)

    如果想表现产品的业务流程,那么我建议使用Visio来绘制流程图.如果想表现产品的页面图文布局和页面的跳转关系,我建议使用axure.如果想表现产品的信息架构,我建议使用Mindmanager或Xmin ...

  3. zz Release memory in Linux (Unused or Cached)

    In computer science, Memory Leakage occurs when a computer software or program consumes required mem ...

  4. Linux 配置

    零:个性化 主题:Radiance 主题颜色: gtk-color-scheme = "base_color:#CCE8CF\nfg_color:#006400\ntooltip_fg_co ...

  5. 增加用户为SiteCollection的管理员

    1.SiteSettings-->Site collection administrators --> 增加你需要的用户

  6. Dribbble客户端应用源码

    简约大气的Dribbble客户端,帮你时刻紧跟潮流,版本描述,添加对Likes & Following的支持设计简约的Dribbble客户端,提供了全面的浏览功能,让你时刻紧跟潮流! A BE ...

  7. win7 vs2008 激活

    参考:http://www.cnblogs.com/wgx0428/archive/2012/08/07/2627380.html win7需要管理员方式运行软件,才能看到输入框 软件:http:// ...

  8. PHPCMS 错误日志 Only variables should be passed by ...

    有几个网站是PHPCMS V9做的,但这两天发现一个问题,PHPCMS 的错误日志超过了20M ,后台报警,然后我看了下错误日志,其中两万多行都是一个错误,错误信息如下: 1 <?php exi ...

  9. PCB优化设计(转载)

    PCB优化设计(一) 2011-04-25 11:55:36|  分类: PCB设计   目 前SMT技术已经非常成熟,并在电子产品上广泛应用,因此,电子产品设计师有必要了解SMT技术的常识和可制造性 ...

  10. SQL Server数据库备份(本机)

    基础的SQL Server数据库备份存储过程 /**************************************************************************** ...