安卓项目之淘忆2.0的代码实现之欢迎引导功能

现在开始写一下功能实现,我用到的工具主要有android studio,腾讯旗下的移动开发者工具leanClould。

下面开始第一部分,一些基本的设置就不记录了,记点大概的功能内容。

首先是activity_welcome.xml文件的内容如下:

<?xml version="1.0" encoding="utf-8"?>
<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"
    android:background="@mipmap/bg_welcome"
    tools:context=".ui.activity.WelcomeActivity">

    <TextView
        android:id="@+id/tv_taoyi_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="69dp"
        android:text="淘忆"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#fff"
        android:textSize="40sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/tv_taoyi_content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tv_taoyi_name"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="15dp"
        android:text="喧闹城市,静谧之处"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="#fff"
        android:textSize="18sp" />

</RelativeLayout>

然后是activity_guide.xml文件的内容如下:

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context=".ui.activity.GuideActivity">

    <android.support.v4.view.ViewPager
        android:id="@+id/vp_Guide"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#0000">

    </android.support.v4.view.ViewPager>
    <LinearLayout
        android:id="@+id/ll"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:gravity="center_horizontal"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/iv1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/guide_point_selected" />

        <ImageView
            android:id="@+id/iv2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/guide_point" />

        <ImageView
            android:id="@+id/iv3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/guide_point" />
    </LinearLayout>

</RelativeLayout>
然后是guide_one.xml文件的内容:

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

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@mipmap/guide_one" />
</LinearLayout>
然后是guide_two.xml文件的内容:

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

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@mipmap/guide_two" />
</LinearLayout>
然后是guide_three.xml文件的内容:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@mipmap/guide_three" />

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="fill_parent"
        android:layout_height="45dp"
        android:layout_alignParentBottom="true"
        android:gravity="center_horizontal"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btn_start"
            android:layout_width="wrap_content"
            android:layout_height="25dp"
            android:background="@drawable/btn_start_taoyi"
            android:text="开启淘忆" />
    </LinearLayout>


</RelativeLayout>

接下来是welcomeActivity.class的内容了:

package com.elainetaylor.taoyi.ui.activity;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.TextView;

import com.avos.avoscloud.AVOSCloud;
import com.elainetaylor.taoyi.R;

public class WelcomeActivity extends AppCompatActivity {
    private TextView tv_taoyi_name, tv_taoyi_content;
    private boolean isFirstIn = false;
    private static final int TIME = 3000;
    private static final int GO_HOME = 1000;
    private static final int GO_GUIDE = 1001;
    private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case GO_HOME:
                    goHome();
                    break;
                case GO_GUIDE:
                    goGuide();
                    break;
            }

        }
    };


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_welcome);
        AVOSCloud.initialize(this, "K1Ki1nEU9GFmUK6lfVMBMeHE-9Nh9j0Va", "pwYculXduYevPHtGDk6LuI0c");
        init();
        write();
        startAnimation();
    }
    

    public void init() {
        tv_taoyi_name = (TextView) findViewById(R.id.tv_taoyi_name);
        tv_taoyi_content = (TextView) findViewById(R.id.tv_taoyi_content);
    }

    public void write() {
        SharedPreferences preferences = getSharedPreferences("elaine", MODE_PRIVATE);
        isFirstIn = preferences.getBoolean("isFirstIn", true);
        if (!isFirstIn) {
            handler.sendEmptyMessageDelayed(GO_HOME, TIME);
        } else {
            handler.sendEmptyMessageDelayed(GO_GUIDE, TIME);
            SharedPreferences.Editor editor = preferences.edit();
            editor.putBoolean("isFirstIn", false);
            editor.apply();
        }
    }

    public void startAnimation() {
        Animation animation = AnimationUtils.loadAnimation(WelcomeActivity.this, R.anim.welcome_text);
        tv_taoyi_name.startAnimation(animation);
        tv_taoyi_content.startAnimation(animation);
    }

    public void goHome() {
        Intent i = new Intent(WelcomeActivity.this, MainActivity.class);
        startActivity(i);
        finish();
    }

    public void goGuide() {
        Intent intent = new Intent(WelcomeActivity.this, GuideActivity.class);
        startActivity(intent);
        finish();
    }
}
接下来是GuideActivity.xml文件的内容是:

package com.elainetaylor.taoyi.ui.activity;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;

import com.elainetaylor.taoyi.R;
import com.elainetaylor.taoyi.adapter.ViewPagerAdapter;

import java.util.ArrayList;
import java.util.List;

public class GuideActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener {
    private ViewPager viewPager;
    private ViewPagerAdapter adapter;
    private List<View> views;
    private Button btnStart;
    private int[] ids={R.id.iv1,R.id.iv2,R.id.iv3};
    private ImageView[] dots;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_guide);
        init();
        initDots();
        startAnimation();
    }

    private void init() {
        LayoutInflater inflater = LayoutInflater.from(this);
        views = new ArrayList<View>();
        views.add(inflater.inflate(R.layout.guide_one, null));
        views.add(inflater.inflate(R.layout.guide_two, null));
        views.add(inflater.inflate(R.layout.guide_three, null));
        adapter = new ViewPagerAdapter(views, GuideActivity.this);
        viewPager = (ViewPager) findViewById(R.id.vp_Guide);
        viewPager.setAdapter(adapter);
        btnStart = (Button) views.get(2).findViewById(R.id.btn_start);
        btnStart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(GuideActivity.this, MainActivity.class);
                startActivity(intent);
                finish();
            }
        });
        viewPager.setOnPageChangeListener(this);
    }

    public void initDots(){
        dots=new ImageView[views.size()];
        for(int i=0;i<views.size();i++){
            dots[i]= (ImageView) findViewById(ids[i]);
        }
    }

    public void startAnimation(){
        Animation animation = AnimationUtils.loadAnimation(this, R.anim.guide_btn);
        btnStart.startAnimation(animation);
    }

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }

    @Override
    public void onPageSelected(int position) {
        for(int i=0;i<dots.length;i++){
            if(position==i){
                dots[i].setImageResource(R.mipmap.guide_point_selected);
            }else{
                dots[i].setImageResource(R.mipmap.guide_point);
            }
        }
    }

    @Override
    public void onPageScrollStateChanged(int state) {

    }
}
至于一些动作或是颜色改变的文件就不写了。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值