android仿微信实现欢迎界面、介绍界面及单击按钮跳转到主界面

各方面的借鉴终于搞出来了。

1.项目目录


其中AppStartActivity.java是启动欢迎界面,ViewPaperActivity.java是滑动介绍界面,MainActivity.java是应用程序主界面


2.主要介绍ViewPaperActivity类的布局文件,另外两个类的布局文件自己定义。

activity_view_paper.xml

<?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="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" />

        <ImageView
            android:id="@+id/page6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:scaleType="matrix"
            android:src="@drawable/page" />
    </LinearLayout>

</FrameLayout>


whats_news_gallery_one.xml whats_news_gallery_two.xml。。。同one

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/whats_new_bg_01"
    android:orientation="vertical" >

    <TextView
        style="@style/whats_new_title"
        android:gravity="center"
        android:text="@string/whats_new_msg1" />

</LinearLayout>

whats_news_gallery_seven.xml

<?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" >

    <LinearLayout
        android:id="@+id/whats_new_seven_bg_ll"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal" >

        <View
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1.0"
            android:background="@drawable/whatsnew_left" />

        <View
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1.0"
            android:background="@drawable/whatsnew_right" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/whats_new_title1_tv"
            style="@style/whats_new_title"
            android:gravity="center"
            android:paddingLeft="0.0dip"
            android:text="@string/whats_new_title7_01" />

        <TextView
            android:id="@+id/whats_new_title2_tv"
            style="@style/whats_new_title"
            android:layout_marginTop="0.0dip"
            android:gravity="center"
            android:paddingLeft="0.0dip"
            android:text="@string/whats_new_title7_02" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0.0dip"
            android:layout_weight="1.0"
            android:gravity="center_horizontal"
            android:paddingTop="60.0dip" >

            <Button
                android:id="@+id/whats_new_start_btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/whats_new_start_btn"
                android:duplicateParentState="false"
                android:paddingLeft="30.0dip"
                android:paddingRight="30.0dip"
                android:text="开始"
                android:gravity="center_vertical"
                android:textColor="#ffffffff"
                android:textSize="@dimen/Small_TextSize" />
        </LinearLayout>
    </LinearLayout>

</FrameLayout>

3.java代码

AppStartActivity.java

package com.dragonldg.viewpager;

import com.dragonldg.viewpager.R;

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

public class AppStartActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏,注意一定要在绘制view之前调用这个方法,不然会出现
		// AndroidRuntimeException: requestFeature() must be called before
		// adding content 这个错误。
		setContentView(R.layout.activity_app_start);
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
				WindowManager.LayoutParams.FLAG_FULLSCREEN); // 全屏显示

		new Handler().postDelayed(new Runnable() {
			public void run() {
				Intent intent = new Intent(AppStartActivity.this,
						ViewPaperActivity.class);
				startActivity(intent);
				AppStartActivity.this.finish();// 结束本Activity
			}
		}, 1000);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.test, menu);
		return true;
	}
}

ViewPaperActivity.java

package com.dragonldg.viewpager;

import java.util.ArrayList;

import com.dragonldg.viewpager.R;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
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.Window;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.ImageView;

public class ViewPaperActivity extends Activity {

	// 翻页控件
	private ViewPager mViewPager;

	// 这5个是底部显示当前状态点imageView
	private ImageView mPage0;
	private ImageView mPage1;
	private ImageView mPage2;
	private ImageView mPage3;
	private ImageView mPage4;
	private ImageView mPage5;
	private ImageView mPage6;

	private Button whats_new_start_btn;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		// 去掉标题栏全屏显示
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_view_paper);
		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);
		mPage6 = (ImageView) findViewById(R.id.page6);

		/*
		 * 这里是每一页要显示的布局,根据应用需要和特点自由设计显示的内容 以及需要显示多少页等
		 */
		LayoutInflater mLi = LayoutInflater.from(this);
		View view1 = mLi.inflate(R.layout.whats_news_gallery_one, null);
		View view2 = mLi.inflate(R.layout.whats_news_gallery_two, null);
		View view3 = mLi.inflate(R.layout.whats_news_gallery_three, null);
		View view4 = mLi.inflate(R.layout.whats_news_gallery_four, null);
		View view5 = mLi.inflate(R.layout.whats_news_gallery_five, null);
		View view6 = mLi.inflate(R.layout.whats_news_gallery_six, null);
		View view7 = mLi.inflate(R.layout.whats_news_gallery_seven, null);

		whats_new_start_btn = (Button) view7
				.findViewById(R.id.whats_new_start_btn);
		whats_new_start_btn.setOnClickListener(new View.OnClickListener() {

			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Intent intent = new Intent(ViewPaperActivity.this,
						MainActivity.class);
				// 进入到主页面
				startActivity(intent);
				ViewPaperActivity.this.finish();// 结束本Activity
			}
		});
		/*
		 * 这里将每一页显示的view存放到ArrayList集合中 可以在ViewPager适配器中顺序调用展示
		 */
		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);
		views.add(view7);

		/*
		 * 每个页面的Title数据存放到ArrayList集合中 可以在ViewPager适配器中调用展示
		 */
		final ArrayList<String> titles = new ArrayList<String>();
		titles.add("tab1");
		titles.add("tab2");
		titles.add("tab3");
		titles.add("tab4");
		titles.add("tab5");
		titles.add("tab6");
		titles.add("tab7");

		// 填充ViewPager的数据适配器
		MyPagerAdapter mPagerAdapter = new MyPagerAdapter(views, titles);
		mViewPager.setAdapter(mPagerAdapter);

		// new Handler().postDelayed(new Runnable() {
		// public void run() {
		// Intent intent = new Intent(ViewPaperActivity.this,
		// MainActivity.class);
		// // 进入到主页面
		// startActivity(intent);
		// ViewPaperActivity.this.finish();// 结束本Activity
		// }
		// }, 1500);
	}

	public class MyOnPageChangeListener implements OnPageChangeListener {

		public void onPageSelected(int page) {
			Animation animation = null;// 声明动画对象

			// 翻页时当前page,改变当前状态园点图片
			switch (page) {
			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));
				mPage6.setImageDrawable(getResources().getDrawable(
						R.drawable.page));
				break;
			case 6:
				mPage6.setImageDrawable(getResources().getDrawable(
						R.drawable.page_now));
				mPage5.setImageDrawable(getResources().getDrawable(
						R.drawable.page));
				break;
			}
		}

		// public void startbutton(View v) {
		// Intent intent = new Intent();
		// intent.setClass(ViewPaperActivity.this, AppStartActivity.class);//
		// 进入到开门效果的Activity
		// startActivity(intent);
		// ViewPaperActivity.this.finish();// 结束本Activity
		// }

		public void onPageScrolled(int arg0, float arg1, int arg2) {
		}

		public void onPageScrollStateChanged(int arg0) {
		}
	}
}

MyPaperAdapter.java

package com.dragonldg.viewpager;

import java.util.ArrayList;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;

public class MyPagerAdapter extends PagerAdapter{

	
	private ArrayList<View> views;
	private ArrayList<String> titles;
	
	
	public MyPagerAdapter(ArrayList<View> views,ArrayList<String> titles){
		
		this.views = views;
		this.titles = titles;
	}
	
	@Override
	public int getCount() {
		return this.views.size();
	}

	@Override
	public boolean isViewFromObject(View arg0, Object arg1) {
		return arg0 == arg1;
	}
	
	public void destroyItem(View container, int position, Object object) {
		((ViewPager)container).removeView(views.get(position));
	}
	
	//页面view
	public Object instantiateItem(View container, int position) {
		((ViewPager)container).addView(views.get(position));
		return views.get(position);
	}
}

MainActivity.java自己定义吧


4运行就OK了,结果图片


上图为启动欢迎界面,只包含简单的文字


上图为滑动介绍界面的首页

上图为滑动介绍界面的最有一页,单击开始按钮跳转到MainActivity中,如下图

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值