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


    上一篇《是男人就下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"
        >  
    
        <RelativeLayout
            android:layout_width="180dp"
            android:layout_height="180dp"
            android:layout_centerInParent="true"
            android:background="@drawable/loading_bg" >
    
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:gravity="center"
                android:orientation="vertical" >
                
                <ProgressBar
            		android:id="@+id/progressBar1"
            		style="?android:attr/progressBarStyleLarge"
            		android:layout_width="wrap_content"
            		android:layout_height="wrap_content"        
            		android:layout_gravity="center_horizontal"
            		
             	/>
          
            	<TextView
            		android: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.ViewPager
            android:id="@+id/whatsnew_viewpager"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center" > 
      
        </android.support.v4.view.ViewPager>  
        
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            > 
            
             <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom"
            	android:layout_marginBottom="30dp" 
            	android:gravity="center_horizontal"     >
                
                <ImageView
                	android:id="@+id/page0"
            		android:layout_width="wrap_content"
            		android:layout_height="wrap_content"        	     	
            		android:scaleType="matrix"
            		android:src="@drawable/page_now" />
                <ImageView
                	android:id="@+id/page1"
            		android:layout_width="wrap_content"
            		android:layout_height="wrap_content"
            		android:layout_marginLeft="10dp"        	     	
            		android:scaleType="matrix"
            		android:src="@drawable/page" />
                <ImageView
                	android:id="@+id/page2"
            		android:layout_width="wrap_content"
            		android:layout_height="wrap_content"
            		android:layout_marginLeft="10dp"           	     	
            		android:scaleType="matrix"
            		android:src="@drawable/page" />
                <ImageView
                	android:id="@+id/page3"
            		android:layout_width="wrap_content"
            		android:layout_height="wrap_content" 
            		android:layout_marginLeft="10dp"          	     	
            		android:scaleType="matrix"
            		android:src="@drawable/page" />
                <ImageView
                	android:id="@+id/page4"
            		android:layout_width="wrap_content"
            		android:layout_height="wrap_content" 
            		android:layout_marginLeft="10dp"          	     	
            		android:scaleType="matrix"
            		android:src="@drawable/page" />
                <ImageView
                	android: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;
        @Override
        public 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() {
    			
    			@Override
    			public boolean isViewFromObject(View arg0, Object arg1) {
    				return arg0 == arg1;
    			}
    			
    			@Override
    			public int getCount() {
    				return views.size();
    			}
    
    			@Override
    			public void destroyItem(View container, int position, Object object) {
    				((ViewPager)container).removeView(views.get(position));
    			}
    			
    			
    			
    			@Override
    			public Object instantiateItem(View container, int position) {
    				((ViewPager)container).addView(views.get(position));
    				return views.get(position);
    			}
    		};
    		
    		mViewPager.setAdapter(mPagerAdapter);
        }    
        
    
        public class MyOnPageChangeListener implements OnPageChangeListener {
    		@Override
    		public 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);
    		}
    		@Override
    		public void onPageScrolled(int arg0, float arg1, int arg2) {
    		}
    
    		@Override
    		public void onPageScrollStateChanged(int arg0) {
    		}
    	}
        public void startbutton(View v) {  
          	Intent intent = new Intent();
    		intent.setClass(Whatsnew.this,WhatsnewDoor.class);
    		startActivity(intent);
    		this.finish();
          }  
        
    }
    最后的运行效果:

                    



  • 相关阅读:
    SAXParseException;前言中不允许有内容的错误
    FATAL Alert:BAD_CERTIFICATE
    DB2的递归
    在Unity中针对屏幕自适应,我们该如何做呢?
    原码与反码的区别?
    在Unity 3D中加入Image图片
    你的外接键盘的小键盘在Num Lock键亮着的,但是数字按了不能用,解决办法在这里
    唯美英文(一)
    如何使用gcc编译器
    C++中const的用法
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6469164.html
Copyright © 2020-2023  润新知