- 论坛徽章:
- 80
|
主要代码- package com.chinaideal.bkclient.tabmain;
- import java.util.ArrayList;
- import java.util.List;
- import android.app.Activity;
- import android.content.Context;
- import android.content.Intent;
- import android.content.SharedPreferences;
- import android.content.SharedPreferences.Editor;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.support.v4.view.ViewPager;
- import android.support.v4.view.ViewPager.OnPageChangeListener;
- import android.view.View;
- import android.view.ViewGroup;
- import android.view.ViewTreeObserver.OnPreDrawListener;
- import android.view.animation.TranslateAnimation;
- import android.widget.ImageView;
- import android.widget.ImageView.ScaleType;
- public class WelComeActivity extends Activity {
- // 首次使用程序的显示的欢迎图片
- private int[] ids = { R.drawable.webcom_frist_image,
- R.drawable.webcom_two_image, R.drawable.webcom_three_image,
- R.drawable.niwodai_welcom };
- SharedPreferences share;
- private List<View> guides = new ArrayList<View>();
- private ViewPager pager;
- private ImageView curDot;
- // 位移量
- private int offset;
- // 记录当前的位置
- private int curPos = 0;
- Editor editor;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- share = getSharedPreferences("showWelcomm", Context.MODE_PRIVATE);
- editor = share.edit();
- // 判断是否首次登录程序
- if (share.contains("shownum")) {
- setContentView(R.layout.welcomniwo);
- int num = share.getInt("shownum", 0);
- editor.putInt("shownum", num++);
- editor.commit();
- skipActivity(1);
- } else {
- editor.putInt("shownum", 1);
- editor.commit();
- setContentView(R.layout.welcometabx);
- initView();
- }
- }
- private void initView() {
- for (int i = 0; i < ids.length; i++) {
- ImageView iv = new ImageView(this);
- iv.setImageResource(ids[i]);
- ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.MATCH_PARENT,
- ViewGroup.LayoutParams.MATCH_PARENT);
- iv.setLayoutParams(params);
- iv.setScaleType(ScaleType.FIT_XY);
- guides.add(iv);
- }
- curDot = (ImageView) findViewById(R.id.cur_dot);
- curDot.getViewTreeObserver().addOnPreDrawListener(
- new OnPreDrawListener() {
- public boolean onPreDraw() {
- offset = curDot.getWidth();
- return true;
- }
- });
- WecommPagerAdapter adapter = new WecommPagerAdapter(guides);
- pager = (ViewPager) findViewById(R.id.showwelom_page);
- pager.setAdapter(adapter);
- pager.setOnPageChangeListener(new OnPageChangeListener() {
- public void onPageSelected(int arg0) {
- moveCursorTo(arg0);
- if (arg0 == ids.length - 1) {// 到最后一张了
- skipActivity(2);
- }
- curPos = arg0;
- }
- public void onPageScrolled(int arg0, float arg1, int arg2) {
- }
- public void onPageScrollStateChanged(int arg0) {
- }
- });
- }
- /**
- * 移动指针到相邻的位置
- *
- * @param position
- * 指针的索引值
- * */
- private void moveCursorTo(int position) {
- TranslateAnimation anim = new TranslateAnimation(offset * curPos,
- offset * position, 0, 0);
- anim.setDuration(300);
- anim.setFillAfter(true);
- curDot.startAnimation(anim);
- }
- /**
- * 延迟多少秒进入主界面
- * @param min 秒
- */
- private void skipActivity(int min) {
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- Intent intent = new Intent(WelComeActivity.this,
- TabHostMain.class);
- startActivity(intent);
- WelComeActivity.this.finish();
- }
- }, 1000*min);
- }
- }
复制代码- public class WecommPagerAdapter extends PagerAdapter{
- private List<View> views;
-
- public GuidePagerAdapter(List<View> views){
- this.views=views;
- }
-
- @Override
- public void destroyItem(View arg0, int arg1, Object arg2) {
- ((ViewPager) arg0).removeView(views.get(arg1));
- }
- @Override
- public void finishUpdate(View arg0) {
- }
- @Override
- public int getCount() {
- return views.size();
- }
- @Override
- public Object instantiateItem(View arg0, int arg1) {
- ((ViewPager) arg0).addView(views.get(arg1), 0);
- return views.get(arg1);
- }
- @Override
- public boolean isViewFromObject(View arg0, Object arg1) {
- return arg0 == (arg1);
- }
- @Override
- public void restoreState(Parcelable arg0, ClassLoader arg1) {
-
- }
- @Override
- public Parcelable saveState() {
- return null;
- }
- @Override
- public void startUpdate(View arg0) {
-
- }
- }
复制代码 布局文件- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout 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/showwelom_page"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_gravity="center"
- android:flipInterval="30"
- android:persistentDrawingCache="animation" />
- <FrameLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_centerHorizontal="true"
- android:gravity="center"
- android:paddingBottom="22.0dip">
- <LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:orientation="horizontal" >
- <ImageView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1.0"
- android:src="@drawable/dot1_w" />
- <ImageView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1.0"
- android:src="@drawable/dot1_w" />
- <ImageView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1.0"
- android:src="@drawable/dot1_w" />
- <ImageView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1.0"
- android:src="@drawable/dot1_w" />
-
- </LinearLayout>
- <ImageView
- android:id="@+id/cur_dot"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/dot2_w" />
- </FrameLayout>
- </RelativeLayout>
复制代码 |
|