当前位置:操作系统 > 安卓/Android >>

Android 仿微信之界面导航篇(一)

微信是现在比较流行的应用了,在各大安卓市场几乎都是名列前茅了。说实话不得不羡慕腾讯庞大的用户群体,只要腾讯敢做,就会有很多人去用。废话不多说,下面就开始说一下如何实现微信的第一次启动程序的用户导航,ViewPager相信大家都不陌生了,是google放出的一个安卓低版本的兼容包android-support-v4.jar,里面有很多类我们可以去使用。那这个导航就是使用这个类来辅助完成的,在每一个View里放置一个图片,当我们使用ViewPager滑动界面的时候,就会看到一张张图片,从而实现这个效果,我们来看一下官方的:

 

\\\\

  其实使用过微信的用户都知道,每次启动程序都会有这个启动画面,如果是第一次使用当然还会出现后面的导航界面。下面以第一次使用为例,来说明如何实现。当启动出现进入第一个Activity,其实就是那个启动画面,有地球那个,之后会在这个Activity里面设置一个Handler去延迟(1秒,数值可以自己设定)执行启动导航界面的Activity,代码如下:


[java]
import android.os.Bundle; 
import android.os.Handler; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Window; 
import android.view.WindowManager; 
 
public class Appstart extends Activity{ 
 
    /*
 * 2012.11.1
 * @author:wangjinyu501
 * 这个Activiyt是程序启动画面,也就是一个图片。在这个Activity里使用了Handler一秒后会进入到引导Activity里面。
 */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
         
        super.onCreate(savedInstanceState);  
        requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏,注意一定要在绘制view之前调用这个方法,不然会出现  
        //AndroidRuntimeException: requestFeature() must be called before adding content 这个错误。  
        setContentView(R.layout.appstart); 
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);   //全屏显示  
         
            new Handler().postDelayed(new Runnable(){ 
        public void run(){ 
            Intent intent = new Intent (Appstart.this,Viewpager.class);          
            startActivity(intent);           
            this.finish();//结束本Activity  
        } 
    }, 1000); 
   } 

import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.content.Intent;
import android.view.Window;
import android.view.WindowManager;

public class Appstart extends Activity{

 /*
 * 2012.11.1
 * @author:wangjinyu501
 * 这个Activiyt是程序启动画面,也就是一个图片。在这个Activity里使用了Handler一秒后会进入到引导Activity里面。
 */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  
  super.onCreate(savedInstanceState); 
  requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏,注意一定要在绘制view之前调用这个方法,不然会出现
  //AndroidRuntimeException: requestFeature() must be called before adding content 这个错误。
  setContentView(R.layout.appstart);
  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);   //全屏显示
  
         new Handler().postDelayed(new Runnable(){
  public void run(){
   Intent intent = new Intent (Appstart.this,Viewpager.class);   
   startActivity(intent);   
   this.finish();//结束本Activity
  }
 }, 1000);
   }
}  之后就进入前面说的导航页面了,其实就是多个View,每一个View就是一张图片,非常简单,而且就是基于ViewPager实现的,唯一有一些难度的就是当我们滑动图片的时候,下面那些移动的小圆点会随着改变。这种效果在其他程序的导航界面中也是很常见的。代码如下:

[java]
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.PagerTitleStrip; 
import android.support.v4.view.ViewPager; 
import android.support.v4.view.ViewPager.OnPageChangeListener; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.animation.Animation; 
import android.view.animation.TranslateAnimation; 
import android.widget.ImageView; 
 
 
public class Viewpager extends Activity { 
     
    private ViewPager mViewPager;//声明ViewPager对象  
    private PagerTitleStrip mPagerTitleStrip;//声明动画标题  
    private ImageView mPageImg;// 动画图片  
    private int currIndex = 0;//当前页面  
    private ImageView mPage0,mPage1,mPage2,mPage3,mPage4,mPage5,mPage6,mPage7,mPage8;//声明导航图片对象  
     
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.viewpager); 
        mViewPager = (ViewPager)findViewById(R.id.viewpager);         
        mViewPager.setOnPageChangeListener(new MyOnPageChangeListener()); 
        mPagerTitleStrip = (PagerTitleStrip)findViewById(R.id.pagertitle);  
         
        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); 
        mPage6 = (ImageView)findViewById(R.id.page6); 
 

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,