您的位置:首页 > 编程语言

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

2016-07-20 14:03 513 查看
现在开始写一下功能实现,我用到的工具主要有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) {

}
}

至于一些动作或是颜色改变的文件就不写了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: