Android项目实战(三):实现第一次进入软件的引导页

最近做的APP接近尾声了,就是些优化工作了,

我们都知道现在的APP都会有引导页,就是安装之后第一次打开才显示的引导页面(介绍这个软件的几张可以切换的图)

自己做了一下,结合之前学过的

慕课网_ViewPager切换动画(3.0版本以上有效果)

 

思路很简单,APP的主界面还是作为主Activity,只要新添加一个类来判断是不是第一次打开APP

设主activity 名字为:MainActivity.java   判断是不是第一次打开APP且实现引导页面的类 LoginActivity ,另外还需要一个类 这是安卓开发_慕课网_ViewPager切换动画(3.0版本以上有效果)中用到的 ZoomOutPageTransformer.java

1.在主activity中,在一开始 先跳转到LoginActivity类中

 1  protected void onCreate(Bundle savedInstanceState) {
 2         super.onCreate(savedInstanceState);
 3         requestWindowFeature(Window.FEATURE_NO_TITLE);
 4         setContentView(R.layout.activity_main);
 5         startActivity(new Intent(MainActivity.this, LoginActivity.class)); //跳转到LoginActivity类中
 6       //初始化
 7         init();
 8         initEvent();
 9         //默认显示第一个功能的界面(微信界面)
10         setSelect(0);
11     }

2.在LoginActivity类中判断是不是第一次打开,如果是,则显示ViewPager切换动画效果

如果不是,则执行finish();语句,直接结束这个Activity  自然的就回到了主Activity中了

 

LoginActivity代码

 1 package com.example.qunxiong;
 2 
 3 import java.io.OutputStream;
 4 import java.util.ArrayList;
 5 import java.util.List;
 6 
 7 
 8 
 9 import android.app.Activity;
10 import android.content.Context;
11 import android.content.Intent;
12 import android.content.SharedPreferences;
13 import android.content.SharedPreferences.Editor;
14 import android.os.Bundle;
15 import android.support.v4.view.PagerAdapter;
16 import android.support.v4.view.ViewPager;
17 import android.view.View;
18 import android.view.ViewGroup;
19 import android.view.View.OnClickListener;
20 import android.widget.Button;
21 import android.widget.ImageView;
22 import android.widget.ImageView.ScaleType;
23 
24 public class LoginActivity extends Activity {
25     private ViewPager mviewpager; //控件
26     private int[] mImgIds = new int[]{R.drawable.bg_rank_shenqi_0,R.drawable.bg_rank_shenqi_1,R.drawable.bg_rank_shenqi_10};//初始化图片
27     private List<ImageView> mImages = new ArrayList<ImageView>();
28     private Button jump;
29      private SharedPreferences preferences;
30       private Editor editor;
31       private OutputStream os;
32       @Override
33       protected void onCreate(Bundle savedInstanceState) {
34        super.onCreate(savedInstanceState);
35        setContentView(R.layout.login);
36        preferences = getSharedPreferences("phone", Context.MODE_PRIVATE);
37        jump = (Button) findViewById(R.id.jump);
38        jump.setOnClickListener(new OnClickListener() {    
39             @Override
40             public void onClick(View v) {
41                 // TODO Auto-generated method stub
42                 finish();
43             }
44         });
45        //判断是不是首次登录,
46        if (preferences.getBoolean("firststart", true)) {
47         editor = preferences.edit();
48         //将登录标志位设置为false,下次登录时不在显示首次登录界面
49         editor.putBoolean("firststart", false);
50         editor.commit();
51         mviewpager = (ViewPager) findViewById(R.id.id_viewpager);
52         //为ViewPage切换添加动画效果(3.0以上版本才可以有效果)
53         mviewpager.setPageTransformer(true, new ZoomOutPageTransformer());
54         
55         mviewpager.setAdapter(new PagerAdapter() {
56             
57             @Override
58             public Object instantiateItem(View container, int position) {
59                 ImageView imageview = new ImageView(LoginActivity.this);
60                 imageview.setImageResource(mImgIds[position]);
61                 imageview.setScaleType(ScaleType.CENTER_CROP); //设置图片不变形
62                 ((ViewGroup) container).addView(imageview);
63                 mImages.add(imageview);
64                 return imageview;
65             };
66             @Override
67             public void destroyItem(View container, int position, Object object) {
68                 // TODO Auto-generated method stub
69                 
70                 ((ViewPager) container).removeView(mImages.get(position));
71             }
72             public boolean isViewFromObject(View view, Object object) {
73                 // TODO Auto-generated method stub
74                 return view == object;
75             }
76             
77             @Override
78             public int getCount() {                   //返回图片个数
79                 // TODO Auto-generated method stub
80                 return mImgIds.length;
81             }
82         });
83        }
84        else 
85        {
86            finish();
87        }
88        
89       }
90 }
91       

 切换动画效果代码 

ZoomOutPageTransformer.java
 1 package com.example.qunxiong;
 2 
 3 import android.annotation.SuppressLint;
 4 import android.support.v4.view.ViewPager;
 5 import android.view.View;
 6 
 7 public class ZoomOutPageTransformer implements ViewPager.PageTransformer {
 8     private static final float MIN_SCALE = 0.85f;
 9     private static final float MIN_ALPHA = 0.5f;
10     
11     @SuppressLint("NewApi") public void transformPage(View view, float position) {
12         int pageWidth = view.getWidth();
13         int pageHeight = view.getHeight();
14 
15         if (position < -1) { // [-Infinity,-1)
16             // This page is way off-screen to the left.
17             view.setAlpha(0);
18 
19         } else if (position <= 1) { // [-1,1]
20             // Modify the default slide transition to shrink the page as well
21             float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));
22             float vertMargin = pageHeight * (1 - scaleFactor) / 2;
23             float horzMargin = pageWidth * (1 - scaleFactor) / 2;
24             if (position < 0) {
25                 view.setTranslationX(horzMargin - vertMargin / 2);
26             } else {
27                 view.setTranslationX(-horzMargin + vertMargin / 2);
28             }
29 
30             // Scale the page down (between MIN_SCALE and 1)
31             view.setScaleX(scaleFactor);
32             view.setScaleY(scaleFactor);
33 
34             // Fade the page relative to its size.
35             view.setAlpha(MIN_ALPHA +
36                     (scaleFactor - MIN_SCALE) /
37                     (1 - MIN_SCALE) * (1 - MIN_ALPHA));
38 
39         } else { // (1,+Infinity]
40             // This page is way off-screen to the right.
41             view.setAlpha(0);
42         }
43     }
44 }
View Code

 

 

转载于:https://www.cnblogs.com/xqxacm/p/4423739.html

# 高校智慧校园解决方案摘要 智慧校园解决方案是针对高校信息化建设的核心工程,旨在通过物联网技术实现数字化校园的智能化升级。该方案通过融合计算机技术、网络通信技术、数据库技术和IC卡识别技术,初步实现了校园一卡通系统,而通过人脸识别技术实现了更精准的校园安全管理、生活管理、教务管理和资源管理。 方案包括多个管理系统:智慧校园管理平台、一卡通卡务管理系统、一卡通人脸库管理平台、智能人脸识别消费管理系统、疫情防控管理系统、人脸识别无感识别管理系统、会议签到管理系统、人脸识别通道管理系统和图书馆对接管理系统。这些系统共同构成了智慧校园的信息化基础,通过统一数据库和操作平台,实现了数据共享和信息一致性。 智能人脸识别消费管理系统通过人脸识别终端,在无需接触的情况下快速完成消费支付过程,提升了校园服务效率。疫情防控管理系统利用热成像测温技术、视频智能分析等手段,实现了对校园人员体温监测和疫情信息实时上报,提高了校园公共卫生事件的预防和控制能力。 会议签到管理系统和人脸识别通道管理系统均基于人脸识别技术,实现了会议的快速签到和图书馆等场所的高效通行管理。与图书馆对接管理系统实现了一卡通系统与图书馆管理系统的无缝集成,提升了图书借阅的便捷性。 总体而言,该智慧校园解决方案通过集成的信息化管理系统,提升了校园管理的智能化水平,优化了校园生活体验,增强了校园安全,并提高了教学和科研的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值