这是一个简单的应用——————记事簿
我使用了许多的库:
//沉浸式状态栏开源库
implementation ‘com.getbase:floatingactionbutton:1.10.1’
//floatingActionButton开源库
implementation ‘com.android.support:cardview-v7:26.1.0’
implementation ‘com.github.arcadefire:nice-spinner:1.3.1’
//下拉菜单开源库
implementation ‘com.github.joaquimley:faboptions:1.2.0’
//floatingbutton库
implementation ‘com.rengwuxian.materialedittext:library:2.1.4’
//textedit开源库
implementation ‘me.gujun.android.taggroup:library:1.4@aar’
//标签库
implementation ‘com.yuyh.imgsel:library:2.0.3’
//拍照图片加载库
implementation ‘com.github.bumptech.glide:glide:3.7.0’
//图片加载库
implementation ‘org.greenrobot:greendao:3.2.2’
// add library数据库
implementation ‘cn.aigestudio.datepicker:DatePicker:2.2.0’
implementation ‘com.kyleduo.switchbutton:library:2.0.0’
//switchbutton开源库
implementation ‘com.github.lecho:hellocharts-library:1.5.8@aar’
//chart图表开源库
/**
* 动画代码库
*/
implementation ‘com.android.support:support-compat:26.1.0’
implementation ‘com.daimajia.easing:library:2.0@aar’
implementation ‘com.daimajia.androidanimations:library:2.3@aar’
贴出部分代码
package zql.app_jinnang.View;
import android.annotation.TargetApi;
import android.app.Application;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Build;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.jaeger.library.StatusBarUtil;
import com.rengwuxian.materialedittext.MaterialEditText;
import org.angmarch.views.NiceSpinner;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import zql.app_jinnang.Bean.Means;
import zql.app_jinnang.Prestener.PrestenerImp_about;
import zql.app_jinnang.Prestener.Prestener_about;
import zql.app_jinnang.R;
import zql.app_jinnang.UserSeting;
import static zql.app_jinnang.R.color.colorFloatingButton;
public class AboutActivity extends AppCompatActivity implements AboutActivityImp,View.OnClickListener{
/**
* ┏┓ ┏┓
* ┏┛┻━━━┛┻┓
* ┃ ┃
* ┃ ━ ┃
* ████━████ ┃
* ┃ ┃
* ┃ ┻ ┃
* ┃ ┃
* ┗━┓ ┏━┛
* ┃ ┃
* ┃ ┃
* ┃ ┃
* ┃ ┃
* ┃ ┃
* ┃ ┃
* ┃ ┗━━━┓
* ┃ 神兽保佑 ┣┓
* ┃ 代码无BUG ┏┛
* ┗┓┓┏━┳┓┏┛
* ┃┫┫ ┃┫┫
* ┗┻┛ ┗┻┛
*
*/
private PrestenerImp_about prestenerImp_about;
private AlertDialog alertDialog_creatpassword;
private NiceSpinner niceSpinner;
private Toolbar toolbar_about;
private UserSeting userSeting;
private static final int REQUEST_COLOR=3;
@TargetApi(Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
prestenerImp_about=new Prestener_about(this);
StatusBarUtil.setColor(this,getColor(colorFloatingButton));
userSeting=(UserSeting)getApplication();
initview();
prestenerImp_about.setBackgroundcolorfromSeting();
}
private void initview(){
inittoolbarseting();
initAboutcode();
initBackgroundcolorview();
initSerectandQuestionview();
}
private void inittoolbarseting(){
toolbar_about=(Toolbar)this.findViewById(R.id.toolbar_about);
setSupportActionBar(toolbar_about);
getSupportActionBar().setHomeButtonEnabled(true);//设置返回键可用
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle("");
toolbar_about.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
private void initSerectandQuestionview(){
TextView text_password=(TextView)this.findViewById(R.id.text_creatpasswordandquestion);
TextView text_password_edit=(TextView)this.findViewById(R.id.text_editpassword);
TextView text_question_edit=(TextView)this.findViewById(R.id.text_editquestion);
TextView text_forgetpaswword=(TextView)this.findViewById(R.id.text_forgetpassword);
text_password.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (prestenerImp_about.isnullthepasswordfromSeting()){
initpassworddialog();
}else {
Toast.makeText(AboutActivity.this, "密码已经存在,如修改请点击修改密码", Toast.LENGTH_SHORT).show();
}
}
});
text_password_edit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (prestenerImp_about.isnullthepasswordfromSeting()){
Toast.makeText(AboutActivity.this, "密码尚未创建,请先创建密码", Toast.LENGTH_SHORT).show();
}else {
initEditpassworddialog();
}
}
});
text_question_edit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (prestenerImp_about.isnullthequestionfromSeting()){
Toast.makeText(AboutActivity.this, "密保尚未创建,请先创建密保", Toast.LENGTH_SHORT).show();
}else {
initQuestionddialog();
}
}
});
text_forgetpaswword.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (prestenerImp_about.isnullthequestionfromSeting()){
Toast.makeText(AboutActivity.this, "密保尚未创建,请先创建密保", Toast.LENGTH_SHORT).show();
}else {
initiscurrentQuestiondialog();
}
}
});
}
private void initEditnewpasssworddialog(){
AlertDialog.Builder builder=new AlertDialog.Builder(this);
LayoutInflater layoutInflater=LayoutInflater.from(this);
View centerview=layoutInflater.inflate(R.layout.activity_set_editpassworddialog,null);
final MaterialEditText materialEditText_password=(MaterialEditText)centerview.findViewById(R.id.set_dialog_password_edit_password);
final TextView texttitle=(TextView)centerview.findViewById(R.id.title_text_password);
Button button_ok=(Button)centerview.findViewById(R.id.set_dialog_password_ok_password);
final AlertDialog alertDialog_editpassword=builder.setView(centerview).create();
texttitle.setText("创建新的密码");
button_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (Means.isedittext_empty(materialEditText_password)){
Toast.makeText(AboutActivity.this, "请输入新密码", Toast.LENGTH_SHORT).show();
}else {
if (materialEditText_password.getText().toString().length()!=6){
Toast.makeText(AboutActivity.this, "请输入六位密码", Toast.LENGTH_SHORT).show();
}else {
prestenerImp_about.putpasswordOnSeting(materialEditText_password.getText().toString());
alertDialog_editpassword.dismiss();
}
}
}
});
alertDialog_editpassword.show();
}
private void initEditpassworddialog(){//实例化一个重新编辑密码的dialog
AlertDialog.Builder builder=new AlertDialog.Builder(this);
LayoutInflater layoutInflater=LayoutInflater.from(this);
View centerview=layoutInflater.inflate(R.layout.activity_set_editpassworddialog,null);
final MaterialEditText materialEditText_password=(MaterialEditText)centerview.findViewById(R.id.set_dialog_password_edit_password);
final TextView texttitle=(TextView)centerview.findViewById(R.id.title_text_password);
Button button_ok=(Button)centerview.findViewById(R.id.set_dialog_password_ok_password);
final AlertDialog alertDialog_editpassword=builder.setView(centerview).create();
texttitle.setText("请输入旧密码");
button_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (prestenerImp_about.iscurrentthepasswordfromSeting(materialEditText_password.getText().toString())){
initEditnewpasssworddialog();
alertDialog_editpassword.dismiss();
}else {
Toast.makeText(AboutActivity.this, "输入密码有误", Toast.LENGTH_SHORT).show();
}
}
});
alertDialog_editpassword.show();
}
private void initQuestionddialog(){//实例化一个重新编辑密保的dialog
AlertDialog.Builder builder=new AlertDialog.Builder(this);
LayoutInflater layoutInflater=LayoutInflater.from(this);
View centerview=layoutInflater.inflate(R.layout.activity_set_editquestiondialog,null);
final MaterialEditText materialEditText_password=(MaterialEditText)centerview.findViewById(R.id.set_dialog_question_edit_question);
final TextView texttitle=(TextView)centerview.findViewById(R.id.title_text_question);
Button button_ok=(Button)centerview.findViewById(R.id.set_dialog_password_ok_question);
final AlertDialog alertDialog_editpassword=builder.setView(centerview).create();
texttitle.setText("请输入旧密保");
button_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (prestenerImp_about.iscurrentthequestionfromSeting(materialEditText_password.getText().toString())){
alertDialog_editpassword.dismiss();
initeditnewQuestiondialog();
}else {
Toast.makeText(AboutActivity.this, "输入旧的密保有误", Toast.LENGTH_SHORT).show();
}
}
});
alertDialog_editpassword.show();
}
private void initeditnewQuestiondialog(){
AlertDialog.Builder builder=new AlertDialog.Builder(this);
LayoutInflater layoutInflater=LayoutInflater.from(this);
View centerview=layoutInflater.inflate(R.layout.activity_set_editquestiondialog,null);
final MaterialEditText materialEditText_password=(MaterialEditText)centerview.findViewById(R.id.set_dialog_question_edit_question);
final TextView texttitle=(TextView)centerview.findViewById(R.id.title_text_question);
Button button_ok=(Button)centerview.findViewById(R.id.set_dialog_password_ok_question);
final AlertDialog alertDialog_editpassword=builder.setView(centerview).create();
texttitle.setText("请输入新密保");
button_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (Means.isedittext_empty(materialEditText_password)){
Toast.makeText(AboutActivity.this, "请输入密保", Toast.LENGTH_SHORT).show();
}else {
prestenerImp_about.putquestionOnSeting(materialEditText_password.getText().toString());
alertDialog_editpassword.dismiss();
}
}
});
alertDialog_editpassword.show();
}
private void initiscurrentQuestiondialog(){
AlertDialog.Builder builder=new AlertDialog.Builder(this);
LayoutInflater layoutInflater=LayoutInflater.from(this);
View centerview=layoutInflater.inflate(R.layout.activity_set_editquestiondialog,null);
final MaterialEditText materialEditText_password=(MaterialEditText)centerview.findViewById(R.id.set_dialog_question_edit_question);
final TextView texttitle=(TextView)centerview.findViewById(R.id.title_text_question);
Button button_ok=(Button)centerview.findViewById(R.id.set_dialog_password_ok_question);
final AlertDialog alertDialog_editpassword=builder.setView(centerview).create();
texttitle.setText("请输入密保");
button_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (Means.isedittext_empty(materialEditText_password)){
Toast.makeText(AboutActivity.this, "请输入密保", Toast.LENGTH_SHORT).show();
}else {
if (prestenerImp_about.iscurrentthequestionfromSeting(materialEditText_password.getText().toString())){
alertDialog_editpassword.dismiss();
prestenerImp_about.showthecurrentpasswordOnAboutactivity();
}else {
Toast.makeText(AboutActivity.this, "密保错误请重新输入", Toast.LENGTH_SHORT).show();
}
}
}
});
alertDialog_editpassword.show();
}
private void initBackgroundcolorview(){//颜色选择
niceSpinner=(NiceSpinner)this.findViewById(R.id.spiner_color_set);
List<String>data=new LinkedList<>(Arrays.asList("默认","珊瑚朱","樱草紫","霓虹绿","绅士黑"));
niceSpinner.attachDataSource(data);
niceSpinner.addOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
switch (i){
case 0:
prestenerImp_about.putcurrentcolorOnSeting(0);
prestenerImp_about.setBackgroundcolorfromSeting();
break;
case 1:
prestenerImp_about.putcurrentcolorOnSeting(1);
prestenerImp_about.setBackgroundcolorfromSeting();
break;
case 2:
prestenerImp_about.putcurrentcolorOnSeting(2);
prestenerImp_about.setBackgroundcolorfromSeting();
break;
case 3:
prestenerImp_about.putcurrentcolorOnSeting(3);
prestenerImp_about.setBackgroundcolorfromSeting();
break;
case 4:
prestenerImp_about.putcurrentcolorOnSeting(4);
prestenerImp_about.setBackgroundcolorfromSeting();
break;
default:
break;
}
}
});
}
private void initAboutcode(){
}
private void initpassworddialog(){//实例化一个创建密码和密保问题的Dialog
AlertDialog.Builder builder=new AlertDialog.Builder(this);
LayoutInflater layoutInflater=LayoutInflater.from(this);
View centerview=layoutInflater.inflate(R.layout.activity_set_passworddialog,null);
final MaterialEditText materialEditText_password=(MaterialEditText)centerview.findViewById(R.id.set_dialog_password_edit);
final MaterialEditText materialEditText_question=(MaterialEditText)centerview.findViewById(R.id.set_dialog_question_edit);
Button button_ok=(Button)centerview.findViewById(R.id.set_dialog_password_ok);
alertDialog_creatpassword=builder.setView(centerview).create();
button_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (Means.isedittext_empty(materialEditText_password)&Means.isedittext_empty(materialEditText_question)){
Toast.makeText(AboutActivity.this, "请输入密码和密保", Toast.LENGTH_SHORT).show();
}else if (Means.isedittext_empty(materialEditText_password)|Means.isedittext_empty(materialEditText_question)){
Toast.makeText(AboutActivity.this, "请输入密码或密保", Toast.LENGTH_SHORT).show();
}else {
if (materialEditText_password.getText().toString().length()!=6){
Toast.makeText(AboutActivity.this, "密码为6位数字", Toast.LENGTH_SHORT).show();
}else {
prestenerImp_about.putpasswordandquestionOnSeting(materialEditText_password.getText().toString(),
materialEditText_question.getText().toString());
alertDialog_creatpassword.dismiss();
}
}
}
});
alertDialog_creatpassword.show();
}
@Override
public void showthecurrentPassword(String password) {
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("密码");
builder.setMessage(password);
builder.setPositiveButton("知道了", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
builder.create().show();
}
@Override
public Context getAboutActivityContext() {
return this;
}
@Override
public Application getAboutApplication() {
return this.getApplication();
}
@Override
public void onClick(View view) {
}
@Override
public void setBackgroundcolorfromSeting(List<Integer>colorlist) {
niceSpinner.setSelectedIndex(prestenerImp_about.getcurrentcolorNumfromSeting());
StatusBarUtil.setColor(this,colorlist.get(0));
toolbar_about.setBackgroundColor(colorlist.get(0));
}
@Override
public void finish() {
setResult(REQUEST_COLOR);
super.finish();
}
}
``package zql.app_jinnang.View;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Application;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Build;
import android.os.Vibrator;
import android.support.annotation.RequiresApi;
import android.support.design.widget.BottomSheetDialog;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.view.menu.MenuBuilder;
import android.support.v7.widget.CardView;
import android.support.v7.widget.Toolbar;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupMenu;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.bumptech.glide.Glide;
import com.daimajia.androidanimations.library.Techniques;
import com.daimajia.androidanimations.library.YoYo;
import com.getbase.floatingactionbutton.AddFloatingActionButton;
import com.getbase.floatingactionbutton.FloatingActionButton;
import com.getbase.floatingactionbutton.FloatingActionsMenu;
import com.jaeger.library.StatusBarUtil;
import com.yuyh.library.imgsel.ISNav;
import com.yuyh.library.imgsel.common.ImageLoader;
import com.yuyh.library.imgsel.config.ISCameraConfig;
import java.lang.reflect.Method;
import java.util.List;
import zql.app_jinnang.Adapter.ViewPagerCardAdapter;
import zql.app_jinnang.Bean.Means;
import zql.app_jinnang.Bean.NoteBean;
import zql.app_jinnang.Prestener.Prestener_main;
import zql.app_jinnang.Prestener.PrestenerImp_main;
import zql.app_jinnang.R;
import zql.app_jinnang.Service.PasswordView.KeyPasswordView;
import zql.app_jinnang.Service.PasswordView.KeynumberDialog;
public class MainActivity extends AppCompatActivity implements MainActivityImp{
/**
* ┏┓ ┏┓
* ┏┛┻━━━┛┻┓
* ┃ ┃
* ┃ ━ ┃
* ████━████ ┃
* ┃ ┃
* ┃ ┻ ┃
* ┃ ┃
* ┗━┓ ┏━┛
* ┃ ┃
* ┃ ┃
* ┃ ┃
* ┃ ┃
* ┃ ┃
* ┃ ┃
* ┃ ┗━━━┓
* ┃ 神兽保佑 ┣┓
* ┃ 代码无BUG ┏┛
* ┗┓┓┏━┳┓┏┛
* ┃┫┫ ┃┫┫
* ┗┻┛ ┗┻┛
*
*/
private PrestenerImp_main prestenerImpMain;
private FloatingActionsMenu floatingActionsmenu_add;
private FloatingActionButton floatingActionButton_work,floatingActionButton_study,floatingActionButton_live,floatingActionButton_diarly,floatingActionButton_travel,floatingActionButton_calendar;
private AddFloatingActionButton addFloatingActionButton;
private LinearLayout mainbottomlinearlayout,voicebuttonlayout;
private ViewPager viewPagercard;
private Toolbar toolbar_main;
private TextView title_toolbar_main;
private RelativeLayout relativeLayout;
private PopupMenu popupMenu;
private Integer maincolor;
private String password="";
private int count_delete;
private AlertDialog alertDialog;
private static final int REQUEST_LIST_CODE = 0;
private static final int REQUEST_CAMERA_CODE = 1;
private static final int REQUEST_UPDATE=2;
private static final int REQUEST_COLOR=3;
private static final int EDIT=0;
private static final int CHANGE=1;
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/**
* 这个并没有什么用哈哈哈
*/
// supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
StatusBarUtil.setColor(this, getColor(R.color.colorFloatingButton));
prestenerImpMain =new Prestener_main(this);
initview();
prestenerImpMain.readNotefromDatatoMain();
prestenerImpMain.setBackgroundcolorfromSeting();
}
private void initview(){//具体的View实现生成的函数
initToolBarSeting();
initFloatingActionButton();
initViewPagercard();
initCameraView();
}
private void initToolBarSeting(){//实现ToolBar的生成
relativeLayout=(RelativeLayout)this.findViewById(R.id.relativeLayout_main);
toolbar_main=(Toolbar)this.findViewById(R.id.toolbar_main);
title_toolbar_main=(TextView)findViewById(R.id.title_toolbar_main);
YoYo.with(Techniques.DropOut)
.duration(700)
.playOn(findViewById(R.id.title_toolbar_main));
setSupportActionBar(toolbar_main);
}
private void initFloatingActionButton(){//实现FloatingActionButton的生成
floatingActionButton_calendar=this.findViewById(R.id.floatingbutton_calendar);
floatingActionsmenu_add=this.findViewById(R.id.floatinbuttonmenu_add);
floatingActionButton_work=this.findViewById(R.id.floatingbutton_work);
floatingActionButton_study=this.findViewById(R.id.floatingbutton_study);
floatingActionButton_live=this.findViewById(R.id.floatingbutton_live);
floatingActionButton_diarly=this.findViewById(R.id.floatingbutton_diary);
floatingActionButton_travel=this.findViewById(R.id.floatingbutton_travel);
floatingActionButton_calendar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
prestenerImpMain.openCalendarActivity();
}
});
floatingActionButton_work.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
prestenerImpMain.openAddActivity(0);
}
});
floatingActionButton_study.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
prestenerImpMain.openAddActivity(1);
}
});
floatingActionButton_live.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
prestenerImpMain.openAddActivity(2);
}
});
floatingActionButton_diarly.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
prestenerImpMain.openAddActivity(3);
}
});
floatingActionButton_travel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
prestenerImpMain.openAddActivity(4);
}
});
}
private void initEditpassworddialog(){
/**
* 实例化一个重新编辑密码的dialog
*/
if (!password.isEmpty()){
password="";
}
final BottomSheetDialog passwordbottomsheetdialog=new BottomSheetDialog(MainActivity.this);
View dialogview=LayoutInflater.from(MainActivity.this)
.inflate(R.layout.sheetdialog_password,null);
final KeynumberDialog keynumberDialog=(KeynumberDialog)dialogview.findViewById(R.id.main_sheetdialog_keynumber);
final KeyPasswordView keyPasswordView=(KeyPasswordView)dialogview.findViewById(R.id.main_sheetdialog_passwordview);
keyPasswordView.setRouldRectcolor(maincolor);
keynumberDialog.setOnNumberClickListener(new KeynumberDialog.OnNumberClickListener() {
@Override
public void onNumberReturn(String number) {
password+=number;
if (password.length()==6){
if (prestenerImpMain.iscurrentthepasswordfromSeting(password)){
startListSecretActivity();
password="";
passwordbottomsheetdialog.dismiss();
}else {
Toast.makeText(MainActivity.this, "输入密码有误", Toast.LENGTH_SHORT).show();
password="";
}
}
keyPasswordView.changeTheNum(password.length());
}
@Override
public void onNumberDelete() {
if (password.length()<=1){
password="";
}else {
password=password.substring(0,password.length()-1);
}
keyPasswordView.changeTheNum(password.length());
}
});
passwordbottomsheetdialog.setContentView(dialogview);
passwordbottomsheetdialog.show();
}
private void initCameraView(){//初始化图片加载器
ISNav.getInstance().init(new ImageLoader() {
@Override
public void displayImage(Context context, String path, ImageView imageView) {
Glide.with(context).load(path).into(imageView);
}
});
}
private void initphototakActivity(){
ISCameraConfig config=new ISCameraConfig.Builder()
.needCrop(true)
.cropSize(0,0,500,500)
.build();
ISNav.getInstance().toCameraActivity(this,config,REQUEST_CAMERA_CODE);
}
private void initViewPagercard(){//实现ViewPagerCard的生成
viewPagercard=(ViewPager)this.findViewById(R.id.viewpager_main);
}
private void initBottomDialog(final NoteBean noteBean){//创建底部弹出的窗口
final BottomSheetDialog bottomSheetDialog=new BottomSheetDialog(MainActivity.this);
View dialogview= LayoutInflater.from(MainActivity.this)
.inflate(R.layout.activity_main_dialog,null);
LinearLayout main_dialog_linear_about,main_dialog_linear_hide,main_dialog_linear_delete,main_dialog_linear_change,main_dialog_friendspace,main_dialog;
main_dialog=dialogview.findViewById(R.id.main_dialog);
main_dialog_linear_about=dialogview.findViewById(R.id.main_dialog_linear_about);
main_dialog_friendspace=dialogview.findViewById(R.id.main_dialog_linear_friendspace);
main_dialog_linear_hide=dialogview.findViewById(R.id.main_dialog_linear_hide);
main_dialog_linear_delete=dialogview.findViewById(R.id.main_dialog_linear_delete);
main_dialog_linear_change=dialogview.findViewById(R.id.main_dialog_linear_change);
main_dialog_linear_about.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent mintent=new Intent(MainActivity.this,NoteinfoActivity.class);
Bundle bundle=new Bundle();
bundle.putSerializable("noteinfo", Means.changefromNotebean(noteBean));
mintent.putExtras(bundle);
startActivity(mintent);
bottomSheetDialog.dismiss();
}
});
main_dialog_friendspace.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sharedNotetexttoWeChart(noteBean.getNoteinfo());
bottomSheetDialog.dismiss();
}
});
main_dialog_linear_hide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
initPasswordFileDialog(noteBean);
bottomSheetDialog.dismiss();
}
});
main_dialog_linear_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
initDeleteDialog(noteBean);
bottomSheetDialog.dismiss();
}
});
main_dialog_linear_change.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent addintent=new Intent(MainActivity.this,AddActivity.class);
Bundle bundle=new Bundle();
bundle.putInt("addtype",CHANGE);
bundle.putSerializable("noteinfo",Means.changefromNotebean(noteBean));
addintent.putExtra("data",bundle);
startActivityForResult(addintent,REQUEST_UPDATE);
bottomSheetDialog.dismiss();
}
});
main_dialog.setBackgroundColor(maincolor);
bottomSheetDialog.setContentView(dialogview);
bottomSheetDialog.show();
}
private void sharedNotetexttoWeChart(String text){//将便签文字分享到微信朋友圈
Intent intent=new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT,text);
startActivity(Intent.createChooser(intent,"share"));
}
private void initPasswordFileDialog(final NoteBean noteBean){//将便签加入到私密文件夹中
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("隐藏");
builder.setMessage("确认隐藏?");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
prestenerImpMain.changeNotetoPasswordFile(noteBean);
prestenerImpMain.readNotefromDatatoMain();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
builder.create().show();
}
private void initDeleteDialog(final NoteBean noteBean){//删除选定的便签
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("删除");
builder.setMessage("确定删除?");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
count_delete=viewPagercard.getCurrentItem();//做一个跳转优化
prestenerImpMain.deleteNoteBean(noteBean);
prestenerImpMain.readNotefromDatatoMain();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
builder.create().show();
}
@Override//创建菜单目录
public boolean onCreatePanelMenu(int featureId, Menu menu) {
getMenuInflater().inflate(R.menu.menu_main,menu);
return super.onCreatePanelMenu(featureId, menu);
}
@SuppressLint("RestrictedApi")
@Override
protected boolean onPrepareOptionsPanel(View view, Menu menu) {
if (menu.getClass() == MenuBuilder.class) {
try {
Method method = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
method.setAccessible(true);
method.invoke(menu, true);
} catch (Exception e) {
e.printStackTrace();
}
}
return super.onPrepareOptionsPanel(view, menu);
}
@Override//设置监听菜单
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.action_list:
prestenerImpMain.openListActivity();
return true;
case R.id.action_seting:
prestenerImpMain.openSetiongActivity();
return true;
case R.id.action_search:
prestenerImpMain.openSearchActivity();
return true;
case R.id.action_serect:
initEditpassworddialog();
return true;
case R.id.action_camera:
initphototakActivity();
return true;
case R.id.action_chart:
initChartActiviy();
return true;
}
return super.onOptionsItemSelected(item);
}
@Override//打开新的搜索界面
public void startSearchActivity() {
Intent mintent=new Intent(this,SearchActivity.class);
startActivity(mintent);
}
//打开数据图表分析界面
private void initChartActiviy(){
Intent mintent=new Intent(MainActivity.this,DataChartActivity.class);
this.startActivity(mintent);
}
@Override
public Context getActivity_this() {
return this;
}
@Override//打开新的AddActivity
public void startAddActivity(int type) {
count_delete=0;//创建新的事件只需跳转到第一位
floatingActionsmenu_add.collapseImmediately();
Intent addintent=new Intent(MainActivity.this,AddActivity.class);
Bundle bundle=new Bundle();
bundle.putInt("addtype",EDIT);
bundle.putInt("notetype",type);
bundle.putString("photouri","<图片>");
addintent.putExtra("data",bundle);
this.startActivityForResult(addintent,REQUEST_UPDATE);
}
@Override//通过拍照打开新的AddActivity
public void startAddActivityS(String path) {
count_delete=0;//创建新的事件只需跳转到第一位
Intent addintent=new Intent(MainActivity.this,AddActivity.class);
Bundle bundle=new Bundle();
bundle.putInt("addtype",EDIT);
bundle.putInt("notetype",1001);
bundle.putString("photouri",path);
addintent.putExtra("data",bundle);
startActivityForResult(addintent,REQUEST_UPDATE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==REQUEST_CAMERA_CODE&&resultCode==RESULT_OK&&data!=null){
String path=data.getStringExtra("result");
prestenerImpMain.openAddActivityS(path);
}
if (requestCode==REQUEST_UPDATE){
prestenerImpMain.readNotefromDatatoMain();
}
if (requestCode==REQUEST_COLOR){
prestenerImpMain.setBackgroundcolorfromSeting();
}
}
@Override
public void startSetingActivity() {
Intent mintet=new Intent(MainActivity.this,AboutActivity.class);
this.startActivityForResult(mintet,REQUEST_COLOR);
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override//设置背景的颜色
public void setMainBackground(Integer integer) {
relativeLayout.setBackground(getDrawable(integer));
}
@Override//打开新的ListActivity
public void startListActivity() {
Intent mintent=new Intent(MainActivity.this,ListActivity.class);
this.startActivityForResult(mintent,REQUEST_UPDATE);
}
@Override//打开秘密ListActivity
public void startListSecretActivity() {
Intent mintent=new Intent(MainActivity.this,ListSecretActivity.class);
this.startActivity(mintent);
}
@Override//打开日历CalendarActivity
public void startCalendarActivity() {
Intent mintent=new Intent(MainActivity.this,CalendarActivity.class);
mintent.putExtra("UPDATE",0);
this.startActivity(mintent);
}
public class ScaleTransformer0 implements ViewPager.PageTransformer {//改变形状的透明度
private Context context;
private float elevation;
public ScaleTransformer0(Context context) {
this.context = context;
elevation = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
20, context.getResources().getDisplayMetrics());
}
@Override
public void transformPage(View page, float position) {
if (position < -1 || position > 1) {
} else {
if (position < 0) {
((CardView) page).setCardElevation((1 + position) * elevation);
} else {
((CardView) page).setCardElevation((1 - position) * elevation);
}
}
}
}
@Override
public void openSheetDialog(NoteBean noteBean) {
initBottomDialog(noteBean);
}
@Override
public void readNotefromData(List<NoteBean> noteBeanList) {
if (noteBeanList.size()!=0){
prestenerImpMain.setMainBackgrountIcon();//当读取的数据为空过的时候,加载一个提示。
}
viewPagercard.removeAllViews();
ViewPagerCardAdapter adapter=new ViewPagerCardAdapter(this,noteBeanList,this,prestenerImpMain);
viewPagercard.setAdapter(adapter);
/**
* 当为删除事件时,count_delete为大于1,否则为0,在进入界面初始化的时候,我们会把count_delete设置为0
* */
if (count_delete>=1){//优化删除(删除完成后跳转到上一个事件界面)
viewPagercard.setCurrentItem(count_delete-1);
}else {
viewPagercard.setCurrentItem(0);
}
viewPagercard.setPageMargin((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,24,getResources().getDisplayMetrics()));
viewPagercard.setPageTransformer(false,new ScaleTransformer0(this));
}
@Override
public Application getMainApplication() {
return getApplication();
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public void setBackgroundcolorfromSeting(List<Integer>mlist) {
maincolor=mlist.get(0);//设置主体颜色
Sta
tusBarUtil.setColor(this, mlist.get(0));
t
oolbar_main.setBackgroundColor(mlist.get(0));
relativeLayout.setBackgroundColor(mlist.get(1));
floatingActionButton_diarly.setColorNormal(mlist.get(0));
floatingActionButton_live.setColorNormal(mlist.get(0));
floatingActionButton_study.setColorNormal(mlist.get(0));
floatingActionButton_travel.setColorNormal(mlist.get(0));
floatingActionButton_work.setColorNormal(mlist.get(0));
}
@Override
public void setMainBackgroundIcon() {
LinearLayout linearlayout_listempty=(LinearLayout)findViewById(R.id.linearlayout_listEmpty);
linearlayout_listempty.setVisibility(View.GONE);
}
}
还有的教程后续发出
https://download.csdn.net/download/qq_41053735/10798787
下载源码查看