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

效果:

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

思路:

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

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

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

4、设置按钮的点击事件

主要代码:

主布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
</android.support.v4.view.ViewPager>
</LinearLayout>

有按钮的切换页布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/whatsnew_page01"><Button android:id="@+id/comein"android:layout_width="120dp"android:layout_height="wrap_content"android:padding="10dp"android:text="进入微信"android:textColor="#ffffff"android:layout_centerInParent="true"android:background="@drawable/btn_selector"android:onClick="startbutton"/></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
 23         //把view加入数组
 24         LayoutInflater lf = getLayoutInflater();
 25         View v1 =lf.inflate(R.layout.w1, null);
 26         View v2 =lf.inflate(R.layout.w2, null);
 27         View v3 =lf.inflate(R.layout.w3, null);
 28         views.add(v1);
 29         views.add(v2);
 30         views.add(v3);
 31
 32
 33         /*
 34          * 把点加入ViewGroup
 35          * */
 36         listgroup = (ViewGroup) findViewById(R.id.listgroup);
 37         //有多少个界面数组就包含多少个点
 38         imageviewArr = new ImageView[views.size()];
 39         //生成每个点
 40         for(int i=0;i<views.size();i++){
 41             imageview = new ImageView(MainActivity.this);
 42             //设置点的宽和高
 43             imageview.setLayoutParams(new LayoutParams(9,9));
 44             //设置点padding(左,上,右,下)
 45             imageview.setPadding(20, 0, 20, 0);
 46
 47
 48             //放入数组
 49             imageviewArr[i]=imageview;
 50
 51             //设置第一个点样式为选中状态,其他为默认状态
 52             if(i==0){
 53                 imageview.setBackgroundResource(R.drawable.page_indicator_focused);
 54             }else{
 55                 imageview.setBackgroundResource(R.drawable.page_indicator_unfocused);
 56             }
 57
 58             listgroup.addView(imageviewArr[i]);
 59
 60         }
 61
 62
 63        //绑定适配器
 64        viewpager.setAdapter(new ViewPagerAdapter());
 65
 66        //设置监听器,切换时,点样式同步切换
 67        viewpager.setOnPageChangeListener(new listChangerListener());
 68     }
 69
 70
 71
 72
 73     /*
 74      * viewpager的适配器
 75      * */
 76     public class ViewPagerAdapter extends PagerAdapter{
 77         //实现PagerAdapter至少要覆盖以下方法
 78         @Override
 79         //返回窗体界面数
 80         public int getCount() {
 81             // TODO Auto-generated method stub
 82             return views.size();
 83         }
 84
 85         @Override
 86         //判断对象是否生成界面
 87         public boolean isViewFromObject(View arg0, Object arg1) {
 88             // TODO Auto-generated method stub
 89             return arg0==arg1;
 90         }
 91
 92
 93         @Override
 94         //销毁一个界面
 95         public void destroyItem(View container, int position, Object object) {
 96             // TODO Auto-generated method stub
 97             ((ViewPager)container).removeView(views.get(position));
 98         }
 99
100         @Override
101         //初始化界面
102         public Object instantiateItem(View container, int position) {
103             // TODO Auto-generated method stub
104             ((ViewPager)container).addView(views.get(position));
105             return views.get(position);
106         }
107
108     }
109
110
111     /*
112      * viewpager的监听器
113      * */
114     public class listChangerListener implements OnPageChangeListener{
115
116         @Override
117         public void onPageScrollStateChanged(int arg0) {
118             // TODO Auto-generated method stub
119
120         }
121
122         @Override
123         public void onPageScrolled(int arg0, float arg1, int arg2) {
124             // TODO Auto-generated method stub
125
126         }
127
128         @Override
129         public void onPageSelected(int arg0) {
130             // TODO Auto-generated method stub
131             for(int i=0;i<imageviewArr.length;i++){
132                 //当前索引为arg0,循环所有点,如果i为当前索引。则i样式为选中状态
133                 imageviewArr[arg0].setBackgroundResource(R.drawable.page_indicator_focused);
134                 if(arg0 !=i){
135                 //否则样式为未选中状态
136                 imageviewArr[i].setBackgroundResource(R.drawable.page_indicator_unfocused);
137                 }
138             }
139
140         }
141
142     }
143
144     //点击按钮打开新页面
145     public void startbutton(View v) {
146         Intent intent = new Intent(MainActivity.this, HomeActivity.class);
147         startActivity(intent);
148         MainActivity.this.finish();
149     }
150
151
152
153 }

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

android微信首页切换界面相关推荐

  1. android 微信缩小通话界面_安卓如何做出微信那样的界面仿微信“我”的界面2/5...

    本系列目标 通过安卓编程仿写微信"我"的界面,让大家也能做出类似微信界面.效果图如下: 本文目标 做出支付部分(其他部分在后续文章中逐步分享).效果图如下: 实现方案 通过截图工具 ...

  2. android使碎片切换界面,玩转Android中的碎片Fragment

    引言:在Android开发中,我们都知道一些界面的展示经常会用到的就是Activity,但是Activity存在着很大的局限性,比如说手机上的界面显示在平板上面就会发生各种变形的问题,Activity ...

  3. android 微信缩小通话界面_Android仿微信多人音视频通话界面

    工作中需要实现一个类似微信多人视频通话功能的界面,分别使用自定义viewgroup和自定义layoutmanager的方式进行了实现.最终工作中采用了layoutmanager,因为可以使用paylo ...

  4. Android Studio 一键切换界面风格

    前言 做开发3年多了 一直用着黑色的主题 比较习惯 然后在群里看到大佬的android studio 配色看起来很鲜艳 让人心生愉悦 于是自己也找一下有没有好看的主题 一键适配! MaterialUI ...

  5. android 微信缩小通话界面_Android 悬浮窗功能实现(微信语音通话悬浮窗效果实现)...

    1.基本介绍 Android 界面绘制都是通过 WindowManager 对象可通过获取 WINDOW_SERVICE 系统服务得到,并因为 WindowManager 继承于 ViewManage ...

  6. android自动打开微信朋友圈,求大神告知Android微信朋友圈界面代码

    满意答案 plarpgricle 2018.12.17 采纳率:58%    等级:10 已帮助:5570人 <?xml  version="1.0" encoding=&q ...

  7. Android 实战之模拟微信首页界面 (java实现)

    哈喽~大家好呀,这篇我们来看看用 java 来实现 模拟微信界面 ,首先我们来看看效果.  开头 首先,我们先看 GIF 图,我们是实现了界面的左滑右滑切换界面与点击下面的图标按钮来实现切换界面的效果 ...

  8. AndroidStudio使用之仿微信首页界面

    AndroidStudio使用之仿微信首页界面 介绍与分析AS实现微信首页的流程, 并附有源码链接: 码云 仿微信 AndroidStudio使用之仿微信首页界面 (一)文件目录 (二)界面分析 1. ...

  9. AndroidStudio使用之实现微信首页界面

    @[TOC]AndroidStudio使用之实现微信首页界面 AndroidStudio使用之实现微信首页界面 详细分析介绍AS实现微信首页的流程,并附有源码 界面分析 我们对微信首页做一个分析,看需 ...

最新文章

  1. 用python+pillow模块实现抖音晃眼睛的特效,图像处理之路(附源码)
  2. windows 的系统命令介绍
  3. 最近开发老遇到莫名其妙的问题,dialog自定义大小,setAttributes这个方法没反应是肿么一回事...
  4. weave实现宿主机之间的容器互联
  5. js中document.referrer认识
  6. php公钥模数,php – 如何从公共指数和RSA模数生成DER / PEM证书?
  7. UOJ#218. 【UNR #1】火车管理 线段树 主席树
  8. java locale string_Java Locale toString()用法及代码示例
  9. 国内8大知名工程项目管理软件推荐
  10. WinZip 6 for Mac(压缩压解工具)附注册码 v6.5.4149破解版
  11. pentaho资源库迁移-MySQL
  12. 联想笔记本大小写、数字键、触摸板切换图标不显示的解决方案
  13. git提交代码出现 fatal: The remote end hung up unexpectedly-错误处理
  14. JavaScript——移动端网页特效
  15. 交易系统开发工程师交易系统开发工程师 - 借此地,招几个人。
  16. php生成随机小数保留一位,php生成0~1随机小数的方法(必看)
  17. 文本生成中的OOV问题
  18. 用python的turtle画炫酷的图
  19. 数据安全入门产品——数据库审计系统详解
  20. 用360检查元素时怎么知道html文件名,360浏览器审查元素怎样用?360浏览器开发工具使用教程...

热门文章

  1. 聚名:过期域名抢注的最好时机是什么时候?
  2. 四核处理器_国产“二合一”平板电脑评测:搭载13.3英寸2K屏,四核处理器
  3. 理论+实操:shell之case语句与for/while/until循环语句、函数、数组理论讲解-满满的干货
  4. Linux 时区与时间time
  5. 前端学习,JavaScript实战总结
  6. 自助式BI与传统BI软件相比有什么优点?
  7. 2020ICPC昆明题解
  8. BAPI_PRODORDCONF_CREATE_TT 报工
  9. 单变量线性回归公式推导
  10. Windows之CMD装逼命令————改变命令提示符配色(让人一看你就是个电脑高手)