上一篇《是男人就下100层【第一层】——高仿微信界面(3)》中我们完成了登录,这一篇看完成登录后的一个短暂加载和引导界面。

加载界面:

<RelativeLayout 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">  <RelativeLayoutandroid:layout_width="180dp"android:layout_height="180dp"android:layout_centerInParent="true"android:background="@drawable/loading_bg" ><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"android:orientation="vertical" ><ProgressBarandroid:id="@+id/progressBar1"style="?android:attr/progressBarStyleLarge"android:layout_width="wrap_content"android:layout_height="wrap_content"        android:layout_gravity="center_horizontal"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="正在登录"android:layout_marginTop="10dp"android:textColor="#fff"android:textSize="20sp"/></LinearLayout></RelativeLayout></RelativeLayout>

定义了一个ProgressBar,效果如下:

再来看看引导界面的实现

<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" >  <android.support.v4.view.ViewPagerandroid:id="@+id/whatsnew_viewpager"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center" > </android.support.v4.view.ViewPager>  <LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"> <LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_gravity="bottom"android:layout_marginBottom="30dp" android:gravity="center_horizontal"     ><ImageViewandroid:id="@+id/page0"android:layout_width="wrap_content"android:layout_height="wrap_content"                 android:scaleType="matrix"android:src="@drawable/page_now" /><ImageViewandroid:id="@+id/page1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="10dp"                    android:scaleType="matrix"android:src="@drawable/page" /><ImageViewandroid:id="@+id/page2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="10dp"                    android:scaleType="matrix"android:src="@drawable/page" /><ImageViewandroid:id="@+id/page3"android:layout_width="wrap_content"android:layout_height="wrap_content" android:layout_marginLeft="10dp"                   android:scaleType="matrix"android:src="@drawable/page" /><ImageViewandroid:id="@+id/page4"android:layout_width="wrap_content"android:layout_height="wrap_content" android:layout_marginLeft="10dp"                   android:scaleType="matrix"android:src="@drawable/page" /><ImageViewandroid:id="@+id/page5"android:layout_width="wrap_content"android:layout_height="wrap_content" android:layout_marginLeft="10dp"                   android:scaleType="matrix"android:src="@drawable/page" />           </LinearLayout></LinearLayout></FrameLayout>

在上面我们使用到了一个ViewPager组件,这个组件的作用是时图片可以左右滑动,使用方法详见:http://www.uml.org.cn/mobiledev/201211294.asp

定义的ViewPage的适配器以及下部的选中状态ImageView的设置如下:

package com.example.weixin.activity;import java.util.ArrayList;import android.app.Activity;
import android.content.Intent;
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.LayoutInflater;
import android.view.View;
import android.widget.ImageView;import com.example.weixin.R;public class Whatsnew extends Activity {private ViewPager mViewPager;   private ImageView mPage0;private ImageView mPage1;private ImageView mPage2;private ImageView mPage3;private ImageView mPage4;private ImageView mPage5;private int currIndex = 0;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.whatsnew_viewpager);mViewPager = (ViewPager)findViewById(R.id.whatsnew_viewpager);        mViewPager.setOnPageChangeListener(new MyOnPageChangeListener());mPage0 = (ImageView)findViewById(R.id.page0);mPage1 = (ImageView)findViewById(R.id.page1);mPage2 = (ImageView)findViewById(R.id.page2);mPage3 = (ImageView)findViewById(R.id.page3);mPage4 = (ImageView)findViewById(R.id.page4);mPage5 = (ImageView)findViewById(R.id.page5);//将要分页显示的View装入数组中LayoutInflater mLi = LayoutInflater.from(this);View view1 = mLi.inflate(R.layout.whats1, null);View view2 = mLi.inflate(R.layout.whats2, null);View view3 = mLi.inflate(R.layout.whats3, null);View view4 = mLi.inflate(R.layout.whats4, null);View view5 = mLi.inflate(R.layout.whats5, null);View view6 = mLi.inflate(R.layout.whats6, null);//每个页面的view数据final ArrayList<View> views = new ArrayList<View>();views.add(view1);views.add(view2);views.add(view3);views.add(view4);views.add(view5);views.add(view6);//填充ViewPager的数据适配器PagerAdapter mPagerAdapter = new PagerAdapter() {@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0 == arg1;}@Overridepublic int getCount() {return views.size();}@Overridepublic void destroyItem(View container, int position, Object object) {((ViewPager)container).removeView(views.get(position));}@Overridepublic Object instantiateItem(View container, int position) {((ViewPager)container).addView(views.get(position));return views.get(position);}};mViewPager.setAdapter(mPagerAdapter);}    public class MyOnPageChangeListener implements OnPageChangeListener {@Overridepublic void onPageSelected(int arg0) {switch (arg0) {case 0:              mPage0.setImageDrawable(getResources().getDrawable(R.drawable.page_now));mPage1.setImageDrawable(getResources().getDrawable(R.drawable.page));break;case 1:mPage1.setImageDrawable(getResources().getDrawable(R.drawable.page_now));mPage0.setImageDrawable(getResources().getDrawable(R.drawable.page));mPage2.setImageDrawable(getResources().getDrawable(R.drawable.page));break;case 2:mPage2.setImageDrawable(getResources().getDrawable(R.drawable.page_now));mPage1.setImageDrawable(getResources().getDrawable(R.drawable.page));mPage3.setImageDrawable(getResources().getDrawable(R.drawable.page));break;case 3:mPage3.setImageDrawable(getResources().getDrawable(R.drawable.page_now));mPage4.setImageDrawable(getResources().getDrawable(R.drawable.page));mPage2.setImageDrawable(getResources().getDrawable(R.drawable.page));break;case 4:mPage4.setImageDrawable(getResources().getDrawable(R.drawable.page_now));mPage3.setImageDrawable(getResources().getDrawable(R.drawable.page));mPage5.setImageDrawable(getResources().getDrawable(R.drawable.page));break;case 5:mPage5.setImageDrawable(getResources().getDrawable(R.drawable.page_now));mPage4.setImageDrawable(getResources().getDrawable(R.drawable.page));break;}currIndex = arg0;//animation.setFillAfter(true);// True:图片停在动画结束位置//animation.setDuration(300);//mPageImg.startAnimation(animation);}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {}@Overridepublic void onPageScrollStateChanged(int arg0) {}}public void startbutton(View v) {  Intent intent = new Intent();intent.setClass(Whatsnew.this,WhatsnewDoor.class);startActivity(intent);this.finish();}  }

最后的运行效果:

                

转载于:https://www.cnblogs.com/lanzhi/p/6469164.html

是男人就下100层【第一层】——高仿微信界面(4)相关推荐

  1. 是男人就下100层【第一层】——高仿微信界面(8)

    上一篇<是男人就下100层[第一层]--高仿微信界面(7)>中我们实现了下弹式菜单,这一篇我们来看看如何实现微信中的摇一摇功能. 首先我们来布局我们的摇一摇界面 布局文件如下: <? ...

  2. 是男人就下100层【第一层】——高仿微信界面(5)

    前面< 是男人就下100层[第一层]--高仿微信界面(4)>中我们已经完成了基本的引导界面和登录界面,这一篇中我们来看看登录后的主界面的布局和内容,来一步一步的完成该界面. 我们先来看看主 ...

  3. 是男人就下100层【第一层】——高仿微信界面(2)

    接着上一篇<是男人就下100层[第一层]--高仿微信界面(1)>,本打算实现上一篇文章中的第二个界面,这一篇先来实现一下登陆界面吧,接下来我们来开始登录界面的制作. 界面布局文件: < ...

  4. 是男人就下100层【第一层】——高仿微信界面(1)

    从今天开始将进行一个特别有趣且有意义的专栏<是男人就下100层>,计划对市面上比较火的应用进行高度仿照,并将开发过程贴出来,和大家交流和分享.由于时间关系可能进度会比较缓慢,但是任何事情如 ...

  5. 是男人就下100层【第一层】——高仿微信界面(3)

    上一篇<是男人就下100层[第一层]--高仿微信界面(2)>中实现了注册登录界面,这一篇来看看具体的登录界面实现,先来看看界面效果. 登录界面布局 <?xml version=&qu ...

  6. 是男人就下100层【第一层】——高仿微信界面(7)

    在上一篇<是男人就下100层[第一层]--高仿微信界面(6)>中我们已经对主界面的的各个菜单进行了简单实现,接下来我们完成两个比较有趣的功能,一个是上部的下弹式菜单,另一个是摇一摇功能. ...

  7. 是男人就下100层【第一层】——高仿微信界面(9)

    前面几篇文章实现的界面效果不符合4.0的HOLO主题及官方建议的设计规范,感谢"一片冰心在玉壶"给我指出,不然我可能会一直错下去,也会误导大家.接下来这几篇我计划用HOLO主题来高 ...

  8. 是男人就下100层【第一层】——高仿微信界面(10)

    在上一篇中虽然实现了微信5.0的主界面框架,但是方法似乎有点牵强,官方已经为HOLO主题提供了actionBar我前面翻译过两篇文章<Android官方教程翻译(5)--设置ActionBar& ...

  9. 是男人就下100层【第五层】——2048游戏从源代码到公布市场

    上一篇<是男人就下100层[第五层]--换肤版2048游戏>中阳光小强对2048游戏用自己的方式进行了实现,并分享了核心源码,这一篇阳光小强打算将该项目的全部源码公开并结合这个实例在这篇文 ...

最新文章

  1. Linux目录结构和文件基本操作
  2. java.lang.StackOverflowError 解决方法
  3. 【错误记录】Oboe / AAudio 播放器报错 ( onEventFromServer - AAUDIO_SERVICE_EVENT_DISCONNECTED - FIFO cleared )
  4. java 扁平化_java8 stream flatMap流的扁平化操作
  5. 从Java程序员进阶为架构师,全套16张图概括最全技能!建议收藏!
  6. 7个有用的Vue开发技巧
  7. Java BigInteger类| 带有示例的减去()方法
  8. 听力技巧-4大难点讲析
  9. 单片机c语言曲普两只蝴蝶,51单片机蜂鸣器播放音乐代码(生日快乐 两只蝴蝶 祝你平安)...
  10. 【利用VBA批量处理中望CAD的修改打印出PDF】
  11. 机器如何猜你所想?阿里小蜜预测平台揭秘
  12. 4.2.5 预测分析法与预测分析表的构造
  13. 毕业生招聘信息的发布与管理系统(论文+设计)
  14. 浙江万里学院计算机期末考,期末复习看这一篇推送就够了
  15. PCI GXL 关于JPS与作业
  16. BearPi_HM Nano开发板环境搭建踩坑
  17. 现代密码学:数字签名
  18. 国产独立游戏《蛊婆:东海地宫》配置要求一览
  19. Python零基础学习-开课吧
  20. 计算机中硬盘上删了的东西为什么还可以恢复sd卡可以吗,怎么从SD卡中恢复误删文件...

热门文章

  1. python项目开发:ftp server开发
  2. vue+file-saver+xlsx导出table为excel
  3. 0502-Hystrix保护应用-简介,使用,健康指标等
  4. 2018.3.23 13周5次课
  5. jquery .parents(), .parent() 和 closest()方法
  6. mysql提示performance_schema缺表
  7. 网络对抗技术_实验一_网络侦查与网络扫描
  8. 洛谷P1182 数列分段Section II 二分答案
  9. 决策树学习算法 - ID3算法
  10. 关于log4net日志写入mysql数据库记录