From 014e88c7f4e24ec8e7e871e9c62090622d35fa85 Mon Sep 17 00:00:00 2001 From: ongbo <1308161085@qq.com> Date: Sun, 5 Jan 2020 19:39:26 +0800 Subject: [PATCH 1/2] UPDATE 1 --- app/src/main/AndroidManifest.xml | 5 +- .../PersonalCenter/JellyInterpolator.java | 17 ++ .../example/PersonalCenter/LoginActivity.java | 255 ++++++++++++++++++ .../PersonContent.java | 14 +- app/src/main/java/com/example/Util/User.java | 94 +++++++ .../com/example/Util/cmkgWebServiceGet.java | 1 + .../cmknowledgegraph/LoginActivity.java | 114 -------- .../cmknowledgegraph/MainActivity.java | 1 + .../PersonalityCenterActivity.java | 22 -- .../cmknowledgegraph/RegisterActivity.java | 102 ------- app/src/main/res/drawable-v24/paw_code.png | Bin 0 -> 1700 bytes app/src/main/res/drawable-v24/paw_left.png | Bin 0 -> 1807 bytes .../res/drawable-v24/project_detail_cir.png | Bin 0 -> 11804 bytes app/src/main/res/drawable/back.png | Bin 0 -> 18210 bytes .../main/res/drawable/radius_drawable_bg.xml | 6 + .../main/res/drawable/rotate_layout_bg.xml | 9 + app/src/main/res/drawable/text_bg.xml | 11 + app/src/main/res/layout/activity_login.xml | 130 ++++----- app/src/main/res/layout/activity_search.xml | 1 + app/src/main/res/layout/input_layout.xml | 71 +++++ app/src/main/res/layout/layout_progress.xml | 23 ++ app/src/main/res/layout/title_layout.xml | 25 ++ app/src/main/res/values/colors.xml | 9 +- app/src/main/res/values/strings.xml | 2 +- app/src/main/res/values/styles.xml | 44 ++- 25 files changed, 630 insertions(+), 326 deletions(-) create mode 100644 app/src/main/java/com/example/PersonalCenter/JellyInterpolator.java create mode 100644 app/src/main/java/com/example/PersonalCenter/LoginActivity.java rename app/src/main/java/com/example/{cmknowledgegraph => PersonalCenter}/PersonContent.java (78%) create mode 100644 app/src/main/java/com/example/Util/User.java delete mode 100644 app/src/main/java/com/example/cmknowledgegraph/LoginActivity.java delete mode 100644 app/src/main/java/com/example/cmknowledgegraph/PersonalityCenterActivity.java delete mode 100644 app/src/main/java/com/example/cmknowledgegraph/RegisterActivity.java create mode 100644 app/src/main/res/drawable-v24/paw_code.png create mode 100644 app/src/main/res/drawable-v24/paw_left.png create mode 100644 app/src/main/res/drawable-v24/project_detail_cir.png create mode 100644 app/src/main/res/drawable/back.png create mode 100644 app/src/main/res/drawable/radius_drawable_bg.xml create mode 100644 app/src/main/res/drawable/rotate_layout_bg.xml create mode 100644 app/src/main/res/drawable/text_bg.xml create mode 100644 app/src/main/res/layout/input_layout.xml create mode 100644 app/src/main/res/layout/layout_progress.xml create mode 100644 app/src/main/res/layout/title_layout.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ea80c92..0e521e4 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -14,11 +14,8 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> - - - - + diff --git a/app/src/main/java/com/example/PersonalCenter/JellyInterpolator.java b/app/src/main/java/com/example/PersonalCenter/JellyInterpolator.java new file mode 100644 index 0000000..d7ab6a6 --- /dev/null +++ b/app/src/main/java/com/example/PersonalCenter/JellyInterpolator.java @@ -0,0 +1,17 @@ +package com.example.PersonalCenter; + +import android.view.animation.LinearInterpolator; + +public class JellyInterpolator extends LinearInterpolator { + private float factor; + + public JellyInterpolator() { + this.factor = 0.15f; + } + + @Override + public float getInterpolation(float input) { + return (float) (Math.pow(2, -10 * input) + * Math.sin((input - factor / 4) * (2 * Math.PI) / factor) + 1); + } +} diff --git a/app/src/main/java/com/example/PersonalCenter/LoginActivity.java b/app/src/main/java/com/example/PersonalCenter/LoginActivity.java new file mode 100644 index 0000000..dc96c27 --- /dev/null +++ b/app/src/main/java/com/example/PersonalCenter/LoginActivity.java @@ -0,0 +1,255 @@ +package com.example.PersonalCenter; + +import android.animation.Animator; +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; +import android.animation.PropertyValuesHolder; +import android.animation.ValueAnimator; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.animation.AccelerateDecelerateInterpolator; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + + +import com.example.Util.ReturnData; +import com.example.Util.User; +import com.example.Util.cmkgWebServiceGet; +import com.example.Util.publicStringUtil; +import com.example.cmknowledgegraph.R; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.IOException; +import java.lang.ref.WeakReference; + + +public class LoginActivity extends AppCompatActivity implements View.OnClickListener { + private TextView mBtnLogin; + private View progress; + private View mInputLayout; + private float mWidth, mHeight; + private LinearLayout mName, mPsw; + + private final LoginHandler loginHandler = new LoginHandler(this); +//静态内部类,防止内存泄漏 + public static class LoginHandler extends Handler{ + private final WeakReference weakReference; + LoginHandler(LoginActivity activity){ + this.weakReference = new WeakReference(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + LoginActivity loginActivity = (LoginActivity) weakReference.get(); + Bundle bundle = msg.getData(); + ReturnData messageJSON = (ReturnData) bundle.getSerializable("msg"); + + String ReturnUsername = (String) messageJSON.getData(); + User.setLogin(true); + User.getUser().setUsername(ReturnUsername); + try { + Thread.sleep(300); + loginActivity.finish(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + } + } + + + + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_NO_TITLE); + setContentView(R.layout.activity_login); + + initView(); + + } + public void initView(){ + mBtnLogin = (TextView) findViewById(R.id.main_btn_login); + progress = findViewById(R.id.layout_progress); + mInputLayout = findViewById(R.id.input_layout); + mName = (LinearLayout) findViewById(R.id.id_edit); + mPsw = (LinearLayout) findViewById(R.id.password_edit); + //给登录设置监听 + + //给登陆功能设置设置监听 + mBtnLogin.setOnClickListener(this); + } + + + @Override + public void onClick(View v) { + //异步处理消息请求 + + int viewID = v.getId(); + switch (viewID){ + case R.id.main_btn_login: + //登录 + //根据监听的不同内容,来改变响应状态 + // 计算出控件的高与宽 + mWidth = mBtnLogin.getMeasuredWidth(); + mHeight = mBtnLogin.getMeasuredHeight(); + // 隐藏输入框 + mName.setVisibility(View.INVISIBLE); + mPsw.setVisibility(View.INVISIBLE); + //调入动画 + inputAnimator(mInputLayout, mWidth, mHeight); + //如果登录成功 + + //获取手机号和密码 + EditText phonenumberEditText = (EditText) mName.getChildAt(1); + EditText passwordEditText = (EditText) mPsw.getChildAt(1); + if(phonenumberEditText==null||phonenumberEditText.getText().toString().equals("")){ + //请输入用户名 + Toast.makeText(this, "请输入电话号码", Toast.LENGTH_SHORT).show(); + }else if(passwordEditText==null||passwordEditText.getText().toString().equals("")){ + //请输入密码 + Toast.makeText(this, "请输入密码", Toast.LENGTH_SHORT).show(); + }else{ + String phonenumber = phonenumberEditText.getText().toString(); + String password = passwordEditText.getText().toString(); + if(phonenumber.length()!=11){ + Toast.makeText(this,"请输入11位电话号码",Toast.LENGTH_SHORT).show(); + }else { +// 基本没错误,就要请求登陆了 + + new Thread(new Runnable() { + @Override + public void run() { + String argslogin = "phonenumber="+phonenumber+"&password="+password; + ReturnData retuData = cmkgWebServiceGet.executeHttpGet(argslogin, publicStringUtil.loginURL); + Log.i("returndat--", "-----" + retuData); + Message m = new Message(); + Bundle b = new Bundle(); + b.putSerializable("msg",retuData); + m.setData(b); + loginHandler.sendMessage(m); + } + }).start(); + } + + } + + + + break; + case R.id.main_title: + //注册 + + } + + + } + + + + + //设置输入框动画效果 + private void inputAnimator(final View view, float w, float h){ + AnimatorSet set = new AnimatorSet(); + + ValueAnimator animator = ValueAnimator.ofFloat(0, w); + animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + + @Override + public void onAnimationUpdate(ValueAnimator animation) { + float value = (Float) animation.getAnimatedValue(); + ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) view + .getLayoutParams(); + params.leftMargin = (int) value; + params.rightMargin = (int) value; + view.setLayoutParams(params); + } + }); + + ObjectAnimator animator2 = ObjectAnimator.ofFloat(mInputLayout, + "scaleX", 1f, 0.5f); + set.setDuration(1000); + set.setInterpolator(new AccelerateDecelerateInterpolator()); + set.playTogether(animator, animator2); + set.start(); + set.addListener(new Animator.AnimatorListener() { + + @Override + public void onAnimationStart(Animator animation) { + + } + + @Override + public void onAnimationRepeat(Animator animation) { + + } + + @Override + public void onAnimationEnd(Animator animation) { + /** + * 动画结束后,先显示加载的动画,然后再隐藏输入框 + */ + progress.setVisibility(View.VISIBLE); + progressAnimator(progress); + mInputLayout.setVisibility(View.INVISIBLE); + + } + + @Override + public void onAnimationCancel(Animator animation) { + + } + }); + + } + private void progressAnimator(final View view) { + PropertyValuesHolder animator = PropertyValuesHolder.ofFloat("scaleX", + 0.5f, 1f); + PropertyValuesHolder animator2 = PropertyValuesHolder.ofFloat("scaleY", + 0.5f, 1f); + ObjectAnimator animator3 = ObjectAnimator.ofPropertyValuesHolder(view, + animator, animator2); + animator3.setDuration(1000); + animator3.setInterpolator(new JellyInterpolator()); + animator3.start(); + + } + //登录错误,恢复初始状态 + private void recovery() { + progress.setVisibility(View.GONE); + mInputLayout.setVisibility(View.VISIBLE); + mName.setVisibility(View.VISIBLE); + mPsw.setVisibility(View.VISIBLE); + + ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mInputLayout.getLayoutParams(); + params.leftMargin = 0; + params.rightMargin = 0; + mInputLayout.setLayoutParams(params); + + + ObjectAnimator animator2 = ObjectAnimator.ofFloat(mInputLayout, "scaleX", 0.5f,1f ); + animator2.setDuration(500); + animator2.setInterpolator(new AccelerateDecelerateInterpolator()); + animator2.start(); + } + + + + + +} diff --git a/app/src/main/java/com/example/cmknowledgegraph/PersonContent.java b/app/src/main/java/com/example/PersonalCenter/PersonContent.java similarity index 78% rename from app/src/main/java/com/example/cmknowledgegraph/PersonContent.java rename to app/src/main/java/com/example/PersonalCenter/PersonContent.java index 82ea5eb..a7aff68 100644 --- a/app/src/main/java/com/example/cmknowledgegraph/PersonContent.java +++ b/app/src/main/java/com/example/PersonalCenter/PersonContent.java @@ -1,4 +1,4 @@ -package com.example.cmknowledgegraph; +package com.example.PersonalCenter; import android.content.Intent; import android.os.Bundle; @@ -10,6 +10,10 @@ import android.widget.ImageButton; import androidx.fragment.app.Fragment; +import com.example.PersonalCenter.LoginActivity; +import com.example.Util.User; +import com.example.cmknowledgegraph.R; + public class PersonContent extends Fragment { @@ -26,9 +30,9 @@ public class PersonContent extends Fragment { login_pc_btn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //跳转到LoginActivity - if(!LoginActivity.isLogin){ + if(!User.isLogin){ Intent intent=new Intent(); - intent.setClass(getActivity(),LoginActivity.class); + intent.setClass(getActivity(), LoginActivity.class); startActivity(intent); } } @@ -38,9 +42,9 @@ public class PersonContent extends Fragment { @Override public void onResume() { super.onResume(); - if(LoginActivity.isLogin){ + if(User.isLogin){ Button longin_pc_btn=(Button) getActivity().findViewById(R.id.login_pc_button); - longin_pc_btn.setText("Hello"+LoginActivity.username); + longin_pc_btn.setText("Hello"+User.getUser().getUsername()); } //高血压 diff --git a/app/src/main/java/com/example/Util/User.java b/app/src/main/java/com/example/Util/User.java new file mode 100644 index 0000000..e9d2571 --- /dev/null +++ b/app/src/main/java/com/example/Util/User.java @@ -0,0 +1,94 @@ +package com.example.Util; + + +/* +* User类 +* 作为当前登录的用户信息,保存该用户信息 +* 采用单例模式 +* +* */ +public class User { + private static User user;//保存某一个用户 + private String phonenumber; + private String username; + private String region; + private String sex; + private Long age; + public static boolean isLogin = false;//是否登录 + private User(){} + public static synchronized User getUser(){ + if (user==null){ + user = new User(); + } + return user; + } + + + public static void setUser(String phonenumber, String username, String region, String sex, Long age) { + user.setAge(age); + user.setRegion(region); + user.setPhonenumber(phonenumber); + user.setUsername(username); + user.setSex(sex); + + } + //设置登录状态 + public static void setLogin(boolean login) { + isLogin = login; + } + //获取登录状态 + public static boolean isLogin() { + return isLogin; + } + //注销 + public static void logoff(){ + user.setAge(null); + user.setRegion(null); + user.setPhonenumber(null); + user.setUsername(null); + user.setSex(null); + user = null; + } + + public void setPhonenumber(String phonenumber) { + this.phonenumber = phonenumber; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getRegion() { + return region; + } + + public void setRegion(String region) { + this.region = region; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public void setAge(Long age) { + this.age = age; + } + + public String getPhonenumber() { + return phonenumber; + } + + public String getUsername() { + return username; + } + + + + public String getSex() { + return sex; + } + + public Long getAge() { + return age; + } +} diff --git a/app/src/main/java/com/example/Util/cmkgWebServiceGet.java b/app/src/main/java/com/example/Util/cmkgWebServiceGet.java index 02743e6..390178e 100644 --- a/app/src/main/java/com/example/Util/cmkgWebServiceGet.java +++ b/app/src/main/java/com/example/Util/cmkgWebServiceGet.java @@ -24,6 +24,7 @@ public class cmkgWebServiceGet { InputStream in = null; String path = publicStringUtil.cmkgTomcatURL+address+args; + Log.i("path-=",path); URL url = null; try { url = new URL(path); diff --git a/app/src/main/java/com/example/cmknowledgegraph/LoginActivity.java b/app/src/main/java/com/example/cmknowledgegraph/LoginActivity.java deleted file mode 100644 index 8d17d3a..0000000 --- a/app/src/main/java/com/example/cmknowledgegraph/LoginActivity.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.example.cmknowledgegraph; - -import android.content.Intent; -import android.os.Bundle; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.Button; -import android.widget.EditText; -import android.widget.TextView; - -import androidx.appcompat.app.AlertDialog; -import androidx.appcompat.app.AppCompatActivity; - -//import com.example.PersonalCenter.Login; - - - -public class LoginActivity extends AppCompatActivity { - public static String username; - public static int usersuccess = 0; - public static boolean isLogin=false;//登录属性,true登陆成功,false未登录 - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_login); - - final EditText tel_edit=findViewById(R.id.id_edit); - final EditText password_edit=findViewById(R.id.password_edit); - - /** - * 登录按钮,传递参数:手机号(int)、密码(string) - */ - - LayoutInflater inflater = getLayoutInflater(); - View layout = inflater.inflate(R.layout.activity_personality_center, null); - final Button welcom_btn= layout.findViewById(R.id.welcom_btn); - - final Button login_btn=findViewById(R.id.login_btn); - login_btn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if(tel_edit==null||tel_edit.getText().toString().equals("")){ - AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this); - builder.setTitle("登录失败");// 设置标题 - builder.setMessage("请输入电话号码");// 为对话框设置内容 - builder.create().show();// 使用show()方法显示对话框 - }else if(password_edit==null||password_edit.getText().toString().equals("")){ - AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this); - builder.setTitle("登录失败");// 设置标题 - builder.setMessage("请输入密码");// 为对话框设置内容 - builder.create().show();// 使用show()方法显示对话框 - }else { - //获取手机号和密码 - String tel = tel_edit.getText().toString().trim(); - String password = password_edit.getText().toString(); - //调用数据库类中的方法进行登录 -// boolean isLogin= OperaSchema.longin(tel,password);//原来的数据库 -// final Login login = new Login(tel, password); -// -// new Thread(new Runnable() { -// @Override -// public void run() { -// LoginActivity.username = login.connUser(); -// LoginActivity.usersuccess = 1; -// Log.i("登录", "登录有没有问题" + username + "oooo"); -// -// } -// }).start(); -// 气虚质怎噩梦治 -/** - * 登陆成功,返回上一个界面,即个人中心界面,刷新个人中心界面 - * 即,改变登录按钮为欢迎按钮 - */ - while (LoginActivity.usersuccess == 0) { - Log.i("suersuer======", "dkie" + LoginActivity.usersuccess); - } - - if (!LoginActivity.username.equals("")) { - //改变个人中心的登录状态, - isLogin=true; - finish();//返回个人中心Activity - //刷新个人中心Activity - Log.i("成功", "成功了"); - - } else {//登陆失败提醒 - AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this); - builder.setTitle("登陆提醒");// 设置标题 - builder.setMessage("登陆失败");// 为对话框设置内容 - builder.create().show();// 使用show()方法显示对话框 - Log.i("失败", "失败了"); - } - LoginActivity.username = ""; - LoginActivity.usersuccess = 0; - } - - } - }); - - //TextView注册跳转 - TextView register_text=findViewById(R.id.register_text); - register_text.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - //跳转到注册页面 -// Intent intent=new Intent(); -// intent.setClass(LoginActivity.this,RegisterActivity.class); -// startActivity(intent); - } - }); - } - - -} diff --git a/app/src/main/java/com/example/cmknowledgegraph/MainActivity.java b/app/src/main/java/com/example/cmknowledgegraph/MainActivity.java index e68b5a9..b887660 100644 --- a/app/src/main/java/com/example/cmknowledgegraph/MainActivity.java +++ b/app/src/main/java/com/example/cmknowledgegraph/MainActivity.java @@ -2,6 +2,7 @@ package com.example.cmknowledgegraph; import android.os.Bundle; +import com.example.PersonalCenter.PersonContent; import com.example.cmknowledgegraph.MainContent; import com.example.SearchCenter.SearchContent; import com.google.android.material.bottomnavigation.BottomNavigationView; diff --git a/app/src/main/java/com/example/cmknowledgegraph/PersonalityCenterActivity.java b/app/src/main/java/com/example/cmknowledgegraph/PersonalityCenterActivity.java deleted file mode 100644 index 6e23a51..0000000 --- a/app/src/main/java/com/example/cmknowledgegraph/PersonalityCenterActivity.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.example.cmknowledgegraph; - -import androidx.appcompat.app.AppCompatActivity; - -import android.annotation.SuppressLint; -import android.content.Intent; -import android.os.Bundle; -import android.util.Log; -import android.view.View; -import android.widget.Button; - -public class PersonalityCenterActivity extends AppCompatActivity { - @SuppressLint("LongLogTag") - @Override - protected void onCreate(Bundle savedInstanceState) { - Log.i("PersonalityCenterActivity","个人中心"); - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_personality_center); - } - - -} diff --git a/app/src/main/java/com/example/cmknowledgegraph/RegisterActivity.java b/app/src/main/java/com/example/cmknowledgegraph/RegisterActivity.java deleted file mode 100644 index 3c530d1..0000000 --- a/app/src/main/java/com/example/cmknowledgegraph/RegisterActivity.java +++ /dev/null @@ -1,102 +0,0 @@ -//package com.example.cmknowledgegraph; -// -//import android.content.DialogInterface; -//import android.os.Bundle; -//import android.util.Log; -//import android.view.View; -//import android.widget.Button; -//import android.widget.EditText; -// -//import androidx.appcompat.app.AlertDialog; -//import androidx.appcompat.app.AppCompatActivity; -// -//import com.example.PersonalCenter.Register; -// -// -//public class RegisterActivity extends AppCompatActivity { -// public static int regester = 0; -// public static boolean isRegister; -// @Override -// protected void onCreate(Bundle savedInstanceState) { -// super.onCreate(savedInstanceState); -// setContentView(R.layout.activity_register); -// -// final EditText tel_edit=findViewById(R.id.tel_register_edit); -// final EditText password_edit=findViewById(R.id.password_register_edit); -// final EditText nickname_edit=findViewById(R.id.nickname_register_edit); -// -// /** -// * 注册按钮,传递参数:手机号(int),密码(string),昵称(string) -// */ -// Button register =findViewById(R.id.register_btn); -// register.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View view) { -// if(tel_edit==null||tel_edit.getText().toString().equals("")){ -// AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this); -// builder.setTitle("注册失败");// 设置标题 -// builder.setMessage("请输入电话号码");// 为对话框设置内容 -// builder.create().show();// 使用show()方法显示对话框 -// }else if (password_edit==null||password_edit.getText().toString().equals("")){ -// AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this); -// builder.setTitle("注册失败");// 设置标题 -// builder.setMessage("请输入密码");// 为对话框设置内容 -// builder.create().show();// 使用show()方法显示对话框 -// }else if(nickname_edit==null||nickname_edit.getText().toString().equals("")){ -// AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this); -// builder.setTitle("注册失败");// 设置标题 -// builder.setMessage("请输入用户名");// 为对话框设置内容 -// builder.create().show();// 使用show()方法显示对话框 -// }else { -// //获取手机号,密码,昵称 -// String tel = tel_edit.getText().toString().trim(); -// String password = password_edit.getText().toString(); -// String NickName = nickname_edit.getText().toString(); -// //调用数据库类方法进行注册 -//// boolean isRegister= OperaSchema.register(tel,NickName,password);//原来的数据连接 -// final Register register = new Register(tel, NickName, password); -// -// new Thread(new Runnable() { -// @Override -// public void run() { -// RegisterActivity.isRegister = register.regist(); -// Log.i("hahaaha", "注册成功了吗" + isRegister); -// RegisterActivity.regester = 1; -// } -// }).start(); -// while (RegisterActivity.regester == 0) { -// Log.i("rererer======", "dsd" + RegisterActivity.regester); -// } -// if (RegisterActivity.isRegister) { -// //注册成功,对话框提醒 -// AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this); -// builder.setTitle("注册提醒");// 设置标题 -// // builder.setIcon(R.drawable.ic_launcher);//设置图标 -// builder.setMessage("注册成功");// 为对话框设置内容 -// builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { -// -// @Override -// public void onClick(DialogInterface arg0, int arg1) { -// // TODO Auto-generated method stub -// //返回登录页面 -// finish(); -// } -// }); -// builder.create().show();// 使用show()方法显示对话框 -// } else {//注册失败 -// //注册失败提醒 -// Log.i("zh==-----==--==", "kidoosloe"); -// AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this); -// builder.setTitle("注册提醒");// 设置标题 -// // builder.setIcon(R.drawable.ic_launcher);//设置图标 -// builder.setMessage("注册失败");// 为对话框设置内容 -// builder.create().show(); -// } -// RegisterActivity.regester = 0; -// RegisterActivity.isRegister = false; -// } -// -// } -// }); -// } -//} diff --git a/app/src/main/res/drawable-v24/paw_code.png b/app/src/main/res/drawable-v24/paw_code.png new file mode 100644 index 0000000000000000000000000000000000000000..724dec0cb92e915a807ea37ef4d4f85c2819a2cd GIT binary patch literal 1700 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sEa{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)pT}UnMXwSj}Ky5HFasE6|34fypYsC&U$~Kxpm%Q8XF? zB!vJl*=Q*~lLb-{&SdVLcU6?{ z#Pp&@TuPBjDl!IrMq>1fca&vr;B5V$MNKZ z0}MSrXLQ!&yjdeNC*}@M3j@Et{Qiao6E<|Ln9;GLWyzE+Jvw$zi#}cA>he0FbV_Sg z)+>vvtFtq*61%cqzc5M)UAKJw;@-Oo%+AVkK7o;$l5@hOXU~|muzO~7#G}u1rv{vi|wWIpFlUin&J@jOKZ zfmgi>nYoKh3@q54Gb()_T`{g`Zx9yi-y$|qNL6r=6=r zJ-;5qb|p12j}O|4CP$8{FK9kup~CBV^1vTehUf1JQ@Vm(ink@jbSXPIXC(+UE6Gn{ zYui$yEb>+IWhRe@ltf6XWJ<^cQ-cp_X{m=fNbN(Pv0;4pr&WMM|aiLz$CQ`YrKGJ>lYk0|tTzU9K5q8XcapGQ!j#;rfM3XAbDPHnnwSIyf!vtl)jLfXA?w zE#~kUgPa64C+CAY3W}?_$`$(FTwn^GU{KB1G0VEY(L>=N&$4Iw3PH7h54j4oHK`U# zEjw(qJ!g)P;VW@{&sIbAD}oE}>85DTnVWmdKf+nIh%sj4nVA!QJ=NYcapyN};}5IT zugz`N+Tc}cD)+RiRQuY3?zO!iqT9Xy{t}p(;}iJ)+5z5sH>RAQxi7`2tl2D&>*gNT z!)c4xo(`5QXpHGwd;8jJ#UI_vomdKI;Vst07$$SiU0rr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-v24/paw_left.png b/app/src/main/res/drawable-v24/paw_left.png new file mode 100644 index 0000000000000000000000000000000000000000..3eacc86df29e6b50b60860f1bb08d6ccb0030443 GIT binary patch literal 1807 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sEa{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)pT}UnMXwSj}Ky5HFasE6|34fhjJ)C&U$~Kxpm%Q8XF? zR1X1Q(mEp;E()Yhlmz(&Gl+zAZMydK!@Gy)S2ntG3Fe;oySmg@Q;J{CAgpfJ&#jT{ zk`um6GG}7*TK1firTlX(w_@)Dzti#_8<+6D@4TfJ`>WuUY4ktKL|rHA%x4PHuggv{ z9;}`xEc9ECM`eLn#{PsK)3a?4dH>n0bYYwS299H*d)5R8*{Cvq~B~wVME7?89P|^FPXBXXU&{F zO-gc4y-sPZ%6fG|NorQqEhQ_9DX(9>l$J>1l9rr3BPldLWm#6=T@`L`?QESzW=cEm zW@V@M>pgjpajJpc!gBWlt{uB}KIXUMFY`}XH+_ydGvkBDuiGE|U^fs9I)6YwVhLk1 zTYHO8*!cqsa=6RmC6?t>u(VAmO%Z7k?3H8UG2AGl?)O9L_(IO(>JAyUX(pXVRAxUB zVbryJ9%9mIvZ0~PEQ)1$dP>vX$y3kjwP`J$z^qjKIl%R^FV}*Dfh%HLw3h0zaNT+& z6ms#BaH_$w1D!=7mT3u}R<2m%B)W!=qs{PWwn^aApvw{xS6D9AghjVoYl%$$B>77E zf~m=)YX=Uf9$j#!Md^~v)k9aiSZ*~1F4-y~5#chCRpPe)f=0e6I=62gy%5o+bD>sg z=W=n*jBj&axK4ZjD&>W{=W}7TMOKZ9&yJ|1=v_FTHaXCwVA0PYrqIJ8$!&J}I#SF0 zk~!w-HMutP@H@X%(UID8Hz;k+j850XYed>^-i zljO|oH*^{w*~yxmHKX3Ctnq@A4{x^^Gv}0o)~p8;u0|%Aiw7SLny{Z|T4GkmiiCs* z#z(Fw@O$lbJCQeQgN&{m*F;mDq|2;3fZIo@mOkFA(t!ummiX*q3frfD>HZl9mWW+TC6C>)YUcQwTXb7s z&Rc7aRr&KKG#xqp{|6u)k&hcrzPrynJv=6}AfdaT zkJ&EZV0A%vz_*3H$4<3dznRphbNiSB%L)6coLf_tJ%0IgSA+^98^_JBD?*G*fC*o< z#5JNMC9x#cD!C{XNHG{07@F!DSn3*@gczDw8CzHx7-$=S$aTWzZ%{Pk=BH$)RpQog T->*LasDZ)L)z4*}Q$iB}nCwh> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-v24/project_detail_cir.png b/app/src/main/res/drawable-v24/project_detail_cir.png new file mode 100644 index 0000000000000000000000000000000000000000..190b6bdb4cc8c6b3e29d09b884e0651c21bc8ae5 GIT binary patch literal 11804 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/back.png b/app/src/main/res/drawable/back.png new file mode 100644 index 0000000000000000000000000000000000000000..83f9db9c99517698f9065038558b9efe18fd7ebc GIT binary patch literal 18210 zcmeI3c{J4T_rTw_LRlgS$r#nAZOmpY6O-L2BD+d8W??d0Gh-Q*R4T2MBw11_6xt(Y zX_1PEK1nE&B_Sk9QNQ<4(Yu<{Ilu4spYNGDXO{ci=id9iujf8@o|$vryPTKVDadQe z0|204PqcOc-!a0c>;&+2=Hkc;;F}zW=*r|f+~`5-`wP*yQ7 z-X1CMF;#6!BGLWM)+h4Bq{ya}xw(E8yCYZZabIQpR;NDg%BIlnuCC8dKi_CeY#S;U zR49c{QJHg~^~5^B#AUlFzD6g?iFoIJez>F>u~8bP+**3ePo@|EdZYv)Vf^!pha}Fi z0ZD-KM1Ph_$;+?X@|@>*0BV46zl0>u%a8KXu-c;b;bl|+}C5k+72mly@jh1lW zi~`X4-ku->)MUies{=JBW@N|$`y_z)xpuQ8&94J%-M6?blq|Xhq-2`I^`(olCBnV0 zV(cWt^JRdb{a(>Z=4*lQc*})l0L)ktu$rm*PzvTCm4d1&Y|L20*`7<30E$XuAI2@M z!cNVNeWV%uuBWj{x9Jw+f+b0Po-$3Y8J-xIpr=Y~lX57Z3;>#gl{dc_FOF_&ZGPEG zYh!f3FFx@lpoa}7==L^zxv^JL8c<$V(OtWyrKMVmQzCIburMHFB~a@D_%{stVC&>k zR>(gJ9o!=@9x|VqeBAk-srC%{Nt3!}`yS6nz1llc0CW8yB7OL&;_1cx|40kLMTyr^Kt$RPV zNu_-=rdQ|iuv|>A0+6}Gsc6~NiC0P)MPY9xB=;zKRRsa&VSR|bnv)Iy%610{Wb7%S@rn+(r^;d;9&SkSbOBu??Smg^4q5cS?6xKmB` ztup@ zE`1%y2R7~APY$m{E7JBpBdyxI(`M~1FU>h6)5tAeIFBeCS=-AfNKLCKnba*iOL9-R zYNzb#2<2Oht9afaF016pddh8!K;QZY9+U2Ld3LDE;GGa({Do*Q+srv{ zb!X}(&tCnHqUxF$;w;7c2b-74>&}kG*iW(#Al4BPCtXhxs+8%84s$x9nfG5b%U%r6 zgvA}miB^hsI{5ki?dF`R_~OVW2e}ioTuvTRS%RZ3ZjnB93}YFea%TC%jO2f1&qU&n zt*~dN1UVyJcV?&>1RkCJFkzZi=}AQDlSfDCe)IuZg`mVe<*y#`? z^I0nhxxvBJig$*VNjpGGYF+eTVn8yf;MtA3p?%v=*(4S(*<-k;KRfCtXx;a@ZPsn^zGuLzX?@wN zq_l*zTYb@O$kjosy;pzEpXqcdaZYkIig~Z@&dSF8(hY0z1T*TV@^&f0U4rDX&|^Cb zP8Yx%%nJ0vs>9;LCJrTkUi7JSIO=2JOToKoy~||QO5Buak;vbox#f~nfRv7Oy!5Gw zIGKGi*C!w+6Vxmx%PDy4aAVj->hH7$$=G_og-0vZ9>^xCt?BwlR)k6Pu5^ z9p;m>Tk20-Q*UiAFHH_M^~QNeZ#3S1L?!Ox;+AbNOK0SCr?*bm0f7j3foh*vuhK&js{=hteCHO%cAAxKMkih zZg}PV`gr;6`r8j1;y35?%XSb23##yiftiR@W{TPI{O;F#Q~jd_(uNlQ*zw%F|7_X`0P{@7S@ZvitGoPwR@F@Sc8r zs_%15kl%f`Q!9rx=lP7>*?IjRgFbYr2g|>8sP_qt3OP4aP&@o);wPmyn=gO4KrLc6 zeq39$w&J$8Qn#Yq&g3tLzCPahvdXT^?unkQ-oB_L9UUzN&HQ(i@|c%t7t>TL9)x*( z6?E{dTLDQ0j_oFmGSV@36+6GORF*U)8d&;{{A9|d(C{wSw%@{m zk{R5e&*$Kg$l%~${a~y_EO594-v>W7VjH7kRmdK#6hCZAu zfmiY^v)=~fxd}K_qzjeD4&;)lHbGPtU+;Gp!TJ6>;`i=;sQ;J+h5W;k6Ub$Z0H%l4hS2|DCe)0Yjg-RZ3YmiShqvNVNqjcfjm>5d zMyqV>*Aw{TNmx~|xt??ug&oYBXNrWHjIH;WH>x#>PbGksI0VWVfkL~X4e?k5JQlS8 zWeis3I47esAwC?z+NY5Cq`&d<(_E+@Hib?T{FRrnnLqn*bi~`UczhCzOtrTrfVu0_ z=@dMPL_?9VI1GY@Lg5g`z6NLniA2RBjIq8ZC>)MLG4Mr?B>A)XFRrcGnJldDyi^CXD5Ljc3F#?UIg3&NoDuQN+0mpqQR5X?LJxbnxGy1Q~`F99L{f{&MbBthrDoa%PkGdL}^=BtMHjN)l;!-XAzzX@B zojL0DXEUgKQ>3t0GwA-W-MA#I*bFw;kxiizz!o)TJvKZBahw(S zm!R|LKY|3Fi=8FR-p0xhZDMGM!03Zrd(6$adE@+0$aor?%Ovp$bSBAHnbP*ZQwrsLI6(=khT z7M)MPe2WGd9%m&yPT)s4yMiZQDgjIlIs~2VOb?+lysYWq7amX8xN%@kBQ{XQZwJRc5iN>wiRJ^*ig7`J zh!(}TMDu}Y#ke3qM2livqWM6yVq6d)qD3(-(R?6UF)j!Y(V`faXg(0F7#9SHXi~peE(j3Oq8OKGJ`k-K7X*lCQH)D8ABa|r3j##6 zD8?n44@4`*1py*j6p2fI>|RzX3%r3f7`#*U?yRThz`I;wWTJ~B0EEs4fbeYqF!&XG zZwG)t6ac(g3*I1m1OU|82iFwa0)WIadut1~klM~?=zv@1Qz!OpK0_QfOw#t@bCr$g z12E$>os`#&EAWfv8lQG;3rlyA9=uLbPUzrv=l3<6$;xSbDT%rsQM%MZWx!b}H-;N& zHKR#+r|~RLqD&)@^3RlN$4D>S(@g*tC`q?ISZ!Ba=w8yg0-2SwCq6gx+-u71c&|(O zOLh$%id4Ptmw~=4A#>jmK*!Bks?|%{@+cxg+3uk0K6KU;)hsobc8%_}E4D-{{H$O^ zq|QNdmr<&WuYd3EINA0C^=a18*1C_Lo{@0Kemg8VUE*UoU8~`$Q>Ziw^}JZlk*QH* z=kBp|DQ4k3TRcj`R?k4rc0tXIRFmhYr+4i{MR>PP7*uj?oq)dSWvJtZt~SfsKJ9Ma zxqijQD=lA)(+WJ&>pni)C~r+Y{bo2jp-(kD?sWkY_Rg&7tKCS#cXSo6#p0EKBk2<& VLM + + + + + diff --git a/app/src/main/res/drawable/rotate_layout_bg.xml b/app/src/main/res/drawable/rotate_layout_bg.xml new file mode 100644 index 0000000..2cb383b --- /dev/null +++ b/app/src/main/res/drawable/rotate_layout_bg.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/text_bg.xml b/app/src/main/res/drawable/text_bg.xml new file mode 100644 index 0000000..fc9a19e --- /dev/null +++ b/app/src/main/res/drawable/text_bg.xml @@ -0,0 +1,11 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index f6ccd2d..afc46cd 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,91 +1,79 @@ - - + android:background="#7adfb8" + tools:context=".LoginActivity" > + + + android:layout_below="@+id/main_title" + android:orientation="vertical" > + + - + android:layout_marginTop="5dip" + android:gravity="center" + android:text="FIREFLY FOREST" + android:textColor="#ffffff" + android:textSize="24sp" /> - - - - + android:gravity="center" + android:text="SHOW YOUR IDEAS" + android:textColor="#ffffff" + android:textSize="16sp" /> -