zoukankan      html  css  js  c++  java
  • ViewPager学习之仿微信主界面

    因为素材的原因,这里都是从网上找的图片,所以所谓的仿微信实际上最后成了下图这货。。。大哭大哭大哭,点击变色也是自己用的windows自带画图的颜料桶填充的空白。。。


    直接上主代码:

    package com.example.tabandviewpage ;
    import java.util.ArrayList;
    import java.util.List;
    
    import android.app.Activity;
    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.view.View.OnClickListener;
    import android.view.ViewGroup;
    import android.view.Window;
    import android.widget.ImageButton;
    import android.widget.LinearLayout;
    
    
    public class Main extends Activity implements OnClickListener{
    	private ViewPager viewpager ;
    	private ImageButton chat_list ,contacts ,friends,aboutme ;
    	private List<View> list ;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		// TODO Auto-generated method stub
    		super.onCreate(savedInstanceState);
    		requestWindowFeature(Window.FEATURE_NO_TITLE) ;
            setContentView(R.layout.main);
    		list = new ArrayList<View>() ;
    		this.viewpager = (ViewPager) findViewById(R.id.viewpager) ;
    		initView() ;
    		this.chat_list.setOnClickListener(this);
    		this.contacts.setOnClickListener(this);
    		this.friends.setOnClickListener(this);
    		this.aboutme.setOnClickListener(this);
    		this.viewpager.setOnPageChangeListener(new OnPageChangeListener() {
    			
    			@Override
    			public void onPageSelected(int arg0) {
    				// TODO Auto-generated method stub
    				int position = viewpager.getCurrentItem() ;
    				resetImg();
    				if(position ==0)
    				{
    					chat_list.setImageResource(R.drawable.btn_chat_anxia);
    				} else if(position == 1) {
    					contacts.setImageResource(R.drawable.btn_contacts_anxia);
    				} else if(position == 2) {
    					friends.setImageResource(R.drawable.btn_rest_anxia);
    				} else if(position == 3) {
    					aboutme.setImageResource(R.drawable.btn_aboutme_anxia);
    				}
    				
    			}
    			
    			@Override
    			public void onPageScrolled(int arg0, float arg1, int arg2) {
    				// TODO Auto-generated method stub
    				
    			}
    			
    			@Override
    			public void onPageScrollStateChanged(int arg0) {
    				// TODO Auto-generated method stub
    				
    			}
    		});
    		
    
    	}
    	void initView() {
    		// TODO Auto-generated method stub
    		this.chat_list = (ImageButton) findViewById(R.id.chat_list) ;
    		this.contacts = (ImageButton) findViewById(R.id.contacts) ;
    		this.friends = (ImageButton) findViewById(R.id.friends) ;
    		this.aboutme = (ImageButton) findViewById(R.id.aboutme) ;
    		
    		//LinearLayout tab_chat_list = (LinearLayout)findViewById(R.id.chat_list) ;
    		//LinearLayout tab_contacts = (LinearLayout)findViewById(R.id.tab_contacts) ;
    		//LinearLayout tab_friends = (LinearLayout) findViewById(R.id.tab_friends) ;
    		//LinearLayout tab_aboutme  = (LinearLayout)findViewById(R.id.tab_aboutme) ;
    		
    		LayoutInflater mf = getLayoutInflater().from(this) ;
    		View tab_01 = mf.inflate(R.layout.tab_chat_list, null) ;
    		View tab_02 =mf.inflate(R.layout.tab_contacts, null) ;
    		View tab_03 = mf.inflate(R.layout.tab_friends, null) ;
    		View tab_04 = mf.inflate(R.layout.tab_aboutme, null) ;
    		
    		this.list.add(tab_01) ;
    		this.list.add(tab_02) ;
    		this.list.add(tab_03) ;
    		this.list.add(tab_04) ;
    		
    		PagerAdapter adapter = new PagerAdapter() {
    			
    			@Override
    			public boolean isViewFromObject(View arg0, Object arg1) {
    				// TODO Auto-generated method stub
    				return arg0 == arg1 ;
    			}
    			
    			@Override
    			public int getCount() {
    				// TODO Auto-generated method stub
    				return list.size() ;
    			}
    			@Override
    			public void destroyItem(ViewGroup container, int position,
    					Object object) {
    				// TODO Auto-generated method stub
    				container.removeView(list.get(position));
    			}
    			
    			@Override
    			public Object instantiateItem(ViewGroup container, int position) {
    				// TODO Auto-generated method stub
    				View view = list.get(position) ;
    				container.addView(view) ;
    				return view;
    			}
    		};
    		
    		
    		viewpager.setAdapter(adapter);
    	}
    	@Override
    	public void onClick(View v) {
    		// TODO Auto-generated method stub
    		resetImg() ;
    		switch(v.getId())
    		{
    		case R.id.chat_list:
    			this.chat_list.setImageResource(R.drawable.btn_chat_anxia);
    			viewpager.setCurrentItem(0);
    		break ;
    		
    		case R.id.contacts:
    			this.contacts.setImageResource(R.drawable.btn_contacts_anxia);
    			viewpager.setCurrentItem(1);
    			break ;
    		
    		case R.id.friends :
    			this.friends.setImageResource(R.drawable.btn_rest_anxia) ;
    			viewpager.setCurrentItem(2);
    			break ;
    		case R.id.aboutme :
    			this.aboutme.setImageResource(R.drawable.btn_aboutme_anxia);
    			viewpager.setCurrentItem(3);
    			break ;
    			
    		}
    		
    	}
    	private void resetImg() {
    		// TODO Auto-generated method stub
    		this.chat_list.setImageResource(R.drawable.btn_chat);
    		this.contacts.setImageResource(R.drawable.btn_contacts);
    		this.friends.setImageResource(R.drawable.btn_rest);
    		this.aboutme.setImageResource(R.drawable.btn_aboutme);
    	}
    
    }
    

    主activity布局:

    <?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" >
        
        <include layout="@layout/top"/>
        
        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1"/>
        
        <include layout="@layout/bottom"/>
       
    </LinearLayout>
    



    顶部布局

    <?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="45dp"
        android:background="#303030"
        android:orientation="vertical" >
        
        <TextView 
            android:text="微信"
            android:textColor="#FFFFFF"
            android:layout_gravity="center"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20sp"/>
        
    
    </LinearLayout>
    


    底部布局:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:baselineAligned="false"
        android:background="#FFFFFF"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >
        
        
        <LinearLayout 
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="vertical">       
            <ImageButton 
                android:id="@+id/chat_list"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/selector"
                android:src="@drawable/btn_chat"/>
            
            <TextView 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="聊天"
                android:textSize="20sp"/>
        </LinearLayout>
        
        
        <LinearLayout 
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="vertical">       
            <ImageButton 
                android:id="@+id/contacts"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/selector"
                android:src="@drawable/btn_contacts"/>
            
            <TextView 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="联系人"
                android:textSize="20sp"/>
        </LinearLayout>
        
        
        <LinearLayout 
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="vertical">       
            <ImageButton 
                android:id="@+id/friends"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/selector"
                android:src="@drawable/btn_rest"/>
            
            <TextView 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="朋友圈"
                android:textSize="15sp"/>
        </LinearLayout>
        
        <LinearLayout 
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="vertical">       
            <ImageButton 
                android:id="@+id/aboutme"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/selector"
                android:src="@drawable/btn_aboutme"/>
            
            <TextView 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="个人中心"
                android:textSize="20sp"/>
        </LinearLayout>
    
    </LinearLayout>
    



  • 相关阅读:
    11、MyBatis教程之动态SQL
    10、MyBatis教程之一对多处理
    9、MyBatis教程之多对一处理
    8、MyBatis之使用注解开发
    7、MyBatis教程之分页实现
    6、MyBatis教程之日志实现
    5、MyBatis教程之ResultMap
    4、MyBatis教程之配置解析
    3、MyBatis教程之CURD操作
    Session的几种保存方式
  • 原文地址:https://www.cnblogs.com/emoji/p/4436832.html
Copyright © 2011-2022 走看看