1、概述
哈喽,我是鑫鑫,这也是我第一次写博客。
原理也很简单
首先
让程序检测你是不是第一次使用app,
如果是则在activity_main.xml中显示dialog(也就是MainActivity.java中的dialog_privacy_show.xml)
,并实现程序的跳转至主程序SecondActivity.xml
对应的SecondActivity.java代码点我传送
如果是第二次启动,则不弹窗,直接进入主程序SecondActivity.xml
所需的资源文件点我跳转
2、代码
新创建一个
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
android:gravity="center">
<TextView
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="wrap_content"
android:text="这里可以自己填充一下"/>
</LinearLayout>
以下是activity_main对应的Java代码
MainActivity.java
package com.mycompany.myapp;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import com.mycompany.myapp.R;
public class MainActivity extends Activity {
SharedPreferences sharedPreferences;
AlertDialog dialog;
private SharedPreferences.Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getActionBar().hide();
date();
}
private void date() {
SharedPreferences shared= getSharedPreferences("is", MODE_PRIVATE);
boolean isfer=shared.getBoolean("isfer", true);
editor = shared.edit();
if(isfer){
//第一次进入跳转
showDialog();
}else{
//第二次
Intent ok = new Intent(MainActivity.this,SecondActivity.class);
startActivity(ok);
finish();
}
}
private void showDialog() {
AlertDialog.Builder builder= new AlertDialog.Builder(this);
//获取界面
View view= LayoutInflater.from(this).inflate(R.layout.dialog_privacy_show, null);
//将界面填充到AlertDiaLog容器并去除边框
builder.setView(view);
//初始化控件
TextView but_ok= view.findViewById(R.id.but_ok);
TextView but_return= view.findViewById(R.id.but_return);
TextView YinSi= view.findViewById(R.id.YinSi);
TextView YongHu= view.findViewById(R.id.YongHu);
//取消点击外部消失弹窗
builder.setCancelable(false);
//创建AlertDiaLog
builder.create();
//AlertDiaLog显示
final AlertDialog dialog= builder.show();
//设置AlertDiaLog宽高属性
// WindowManager.LayoutParams params = Objects.requireNonNull(customAlert.getWindow()).getAttributes();
// params.width = 200;
// params.height = 200 ;
// dialog.getWindow().setAttributes(params);
// 移除dialog的decorview背景色
dialog.getWindow().getDecorView().setBackground(null);
//设置自定义界面的点击事件逻辑
but_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent ok = new Intent(MainActivity.this,SecondActivity.class);
startActivity(ok);
finish();
editor.putBoolean("isfer", false);
editor.commit();
}
});
but_return.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
YinSi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(MainActivity.this,YinSi.class);
startActivity(intent);
}
});
YongHu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(MainActivity.this,YongHu.class);
startActivity(intent);
}
});
}
}
SecondActivity.xml
<?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:orientation="vertical"
android:gravity="center">
<TextView
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="wrap_content"
android:text="Welcome"/>
</LinearLayout>
Second_Activity.java
package com.mycompany.myapp;
import android.app.Activity;
import android.os.Bundle;
public class SecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.SecondActivity);
}
//里面的功能自己填充
}
dialog_privacy_show.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="wrap_content"
android:orientation="vertical"
android:background="@drawable/fill_stroke">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="38dp"
android:layout_height="38dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:src="@drawable/ic_message_alert"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="22sp"
android:textColor="#FF009688"
android:textStyle="bold"
android:layout_gravity="center|bottom"
android:text="消息"/>
</LinearLayout>
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:textColor="#5C5C5C"
android:textSize="20sp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:text="我们极其重视用户协议和隐私协议, 请你仔细浏览下两份协议, 本协议在--这里可以填App名称--因为你之间产生法律效力, 意味着您完全同意并接受协议的全部条款。"/>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:gravity="center">
<TextView
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="wrap_content"
android:id="@+id/YinSi"
android:text="用户协议"/>
<View
android:layout_height="match_parent"
android:layout_width="30dp"/>
<TextView
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="wrap_content"
android:id="@+id/YongHu"
android:text="隐私协议"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#eee"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/but_return"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="16sp"
android:gravity="center"
android:textColor="#999"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:text="取消"/>
<LinearLayout
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="#eee"/>
<TextView
android:id="@+id/but_ok"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="16sp"
android:gravity="center"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:textColor="#FF009688"
android:textStyle="bold"
android:text="确定"/>
</LinearLayout>
</LinearLayout>
***以下的所有资源在drawable文件中创建***
fill_stroke.xml
对应dialog_privacy_show.xml代码
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!--描边设置-->
<stroke android:color="@android:color/darker_gray"
android:width="1px" />
<!--填充设置-->
<solid android:color="@android:color/white"/>
<!--圆角设置-->
<corners android:radius="15dp"/>
</shape>
ic_message_alert.xml
对应dialog_privacy_show.xml代码位
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24">
<path
android:fillColor="#FF009688"
android:pathData="M13,10H11V6H13M13,14H11V12H13M20,2H4A2,2 0,0 0,2 4V22L6,18H20A2,2 0,0 0,22 16V4C22,2.89 21.1,2 20,2Z"/>
</vector>
以上就是全部的代码了,如果有什么bug反馈
以下是效果图
鑫鑫工具箱是我另外一个demo
现已更新至6.1版本
感兴趣的可以下载一下:https://share.weiyun.com/4fK4CUIX
我的邮箱:1402832033@qq.com有bug可以反馈。
我是鑫鑫,再见了。