diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ea80c92..0e91255 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/Login.java b/app/src/main/java/com/example/PersonalCenter/Login.java
deleted file mode 100644
index a9c9b17..0000000
--- a/app/src/main/java/com/example/PersonalCenter/Login.java
+++ /dev/null
@@ -1,27 +0,0 @@
-//package com.example.PersonalCenter;
-//
-//import android.util.Log;
-//
-//public class Login {
-//
-// private String password;
-// private String phonenumber;
-// public Login(String phonenumber,String password){
-//
-// this.password = password;
-// this.phonenumber = phonenumber;
-//
-// }
-// public String connUser(){
-// String infoString = WebServiceGet.executeHttpGet(phonenumber,password,"/Login");
-//// if(infoString.equals("false")){
-//// Log.i("Login","+++++++++++fail"+infoString);
-//// }else {
-//// Log.i("Login","+++++++++++successs"+infoString);
-//// }
-// //登录成功后返回用户名
-// while(infoString==null){}
-// Log.i("sucesss",infoString+"ha");
-// return infoString;
-// }
-//}
diff --git a/app/src/main/java/com/example/PersonalCenter/Login_Register/LoginActivity.java b/app/src/main/java/com/example/PersonalCenter/Login_Register/LoginActivity.java
new file mode 100644
index 0000000..46b432c
--- /dev/null
+++ b/app/src/main/java/com/example/PersonalCenter/Login_Register/LoginActivity.java
@@ -0,0 +1,252 @@
+package com.example.PersonalCenter.Login_Register;
+
+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.PersonalCenter.JellyInterpolator;
+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 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 77%
rename from app/src/main/java/com/example/cmknowledgegraph/PersonContent.java
rename to app/src/main/java/com/example/PersonalCenter/PersonContent.java
index 82ea5eb..a0b0178 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;
@@ -6,10 +6,13 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
-import android.widget.ImageButton;
import androidx.fragment.app.Fragment;
+import com.example.PersonalCenter.Login_Register.LoginActivity;
+import com.example.Util.User;
+import com.example.cmknowledgegraph.R;
+
public class PersonContent extends Fragment {
@@ -26,9 +29,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 +41,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/PersonalCenter/Register.java b/app/src/main/java/com/example/PersonalCenter/Register.java
deleted file mode 100644
index 475449f..0000000
--- a/app/src/main/java/com/example/PersonalCenter/Register.java
+++ /dev/null
@@ -1,20 +0,0 @@
-//package com.example.PersonalCenter;
-//
-//public class Register {
-// String phonenumber;
-// String username;
-// String password;
-// public Register(String phonenumber, String username, String password){
-// this.phonenumber = phonenumber;
-// this.username = username;
-// this.password = password;
-// }
-// public boolean regist(){
-// String regRet = WebServicePost.execuHttpPost(username, phonenumber, password,"/Register");
-// if(regRet.equals("true")){
-// return true;
-// }else {
-// return false;
-// }
-// }
-//}
diff --git a/app/src/main/java/com/example/PersonalCenter/Search.java b/app/src/main/java/com/example/PersonalCenter/Search.java
deleted file mode 100644
index 4279c59..0000000
--- a/app/src/main/java/com/example/PersonalCenter/Search.java
+++ /dev/null
@@ -1,47 +0,0 @@
-//package com.example.PersonalCenter;
-//
-//import android.util.Log;
-//
-//import com.hankcs.hanlp.HanLP;
-//
-//import java.lang.reflect.Array;
-//import java.util.ArrayList;
-//import java.util.HashSet;
-//import java.util.List;
-//import java.util.Set;
-//
-//public class Search {
-// public String sickname;
-// public Search(String sickname){
-// this.sickname = sickname;
-// }
-//
-// public List> search(){
-// Log.i("search","sick执行了");
-// //找出对应的8个关键字
-// List keywordList = HanLP.extractKeyword(sickname,8);
-//
-// //针对每一个sickname来查找一下能不能够找到相应的名字
-// Set mediciesSet = new HashSet();
-// Set reasonsSet = new HashSet();
-// for(String i: keywordList){
-// Log.i("关键词提取",i+"ha");
-// String resq = SearchServiceGet.executeSearchGet(i,"/Search");
-// String resq="dd";
-// if(!resq.equals("fail")) {
-// String[] me_rea = resq.split("-");
-// String[] medicines = me_rea[0].split("\\|");
-// for(String j: medicines) mediciesSet.add(j);
-// String[] reasons = me_rea[1].split("\\|");
-// for(String j: reasons) reasonsSet.add(j);
-//
-// }
-// }
-// List> a = new ArrayList>();
-// a.add(mediciesSet);
-// a.add(reasonsSet);
-// return a;
-//
-//
-// }
-//}
diff --git a/app/src/main/java/com/example/PersonalCenter/SearchServiceGet.java b/app/src/main/java/com/example/PersonalCenter/SearchServiceGet.java
deleted file mode 100644
index 01438c5..0000000
--- a/app/src/main/java/com/example/PersonalCenter/SearchServiceGet.java
+++ /dev/null
@@ -1,138 +0,0 @@
-package com.example.PersonalCenter;
-
-import android.util.Log;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.ProtocolException;
-import java.net.URL;
-import java.util.ArrayList;
-
-public class SearchServiceGet {
-
- public static ArrayList content=new ArrayList();//存储数据内容
- public static String name_back;
- public static boolean SearchSuccess=false;
- public static int code;
-
- public static void executeSearchGet(String name){
- HttpURLConnection connection = null;
- InputStream in = null;
-
- String address="/rest/cmkg/question/hello";
-
- String Url = "http://114.116.199.154:5000/cmkg"+address;
- String path = Url + "?name="+name;
- URL url = null;
- try {
- url = new URL(path);
- connection = (HttpURLConnection)url.openConnection();
- connection.setRequestMethod("GET");
- connection.setConnectTimeout(100000);//建立连接超时
- connection.setReadTimeout(80000);//传输数据超时
- in = connection.getInputStream();
-
- BufferedReader reader = null;//输入流
- String line = "";//读取返回的每一行
- StringBuilder response = new StringBuilder();
- try {
- reader = new BufferedReader(new InputStreamReader(in));
- while((line = reader.readLine()) != null) {
- response.append(line);
- }
- //这时候response就是一个连续字符串了吧
- Log.i("response+++++",response+"返回值");
- System.out.println(response.toString());
-
- //开始解析返回的数据
-// JSONObject jo=JSONObject.fromObject(response.toString());
- org.json.JSONObject jo = null;
- try {
- jo = new org.json.JSONObject(response.toString());
- } catch (JSONException e) {
- e.printStackTrace();
- }
- try {
- code=jo.getInt("code");
- } catch (JSONException e) {
- e.printStackTrace();
- }
- System.out.println("code="+code);
- if(code!=0){ //查询成功,在开始解析数据
- System.out.println("code==@@@@@@@@@@20"+code);
- try {
- name_back=jo.getString("msg");//查询的主语
- } catch (JSONException e) {
- e.printStackTrace();
- }
- //把data看作一个JSONObject,无论里面由多少元素,都转换为JSONArray,存在数组里
- JSONObject jo_data= null;
-
- try {
- jo_data = jo.getJSONObject("data");
- if(jo_data==null) System.out.println(("jo_data==null"));
- else System.out.println("jo_data!=null");
- } catch (JSONException e) {
- e.printStackTrace();
- }
-// JSONArray data_arr=new JSONArray();
- ArrayList datas=new ArrayList();
- try {
-
-// jo_data.toJSONArray(data_arr);
- datas.add(jo_data.toString());
-// data_arr=jo.getJSONArray("data");
-// System.out.println("data_arr======"+data_arr.length());
- } catch (Exception e) {
- e.printStackTrace();
- }
- //遍历data_arr,把里面的数据放入ArrayList content里
- for(int i=0;i
+
+
+
+
+
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" />
-
-
-
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true" >
+
+
+
+
+
-
-
+ android:layout_below="@+id/input_layout"
+ android:layout_centerInParent="true"
+ android:layout_marginTop="15dip"
+ android:background="@drawable/text_bg"
+ android:gravity="center"
+ android:paddingBottom="2dip"
+ android:paddingLeft="15dip"
+ android:paddingRight="15dip"
+ android:paddingTop="2dip"
+ android:text="Login"
+ android:textColor="#ffffff"
+ android:textSize="20sp" />
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_search.xml b/app/src/main/res/layout/activity_search.xml
index 03bdbf8..35a0025 100644
--- a/app/src/main/res/layout/activity_search.xml
+++ b/app/src/main/res/layout/activity_search.xml
@@ -18,6 +18,7 @@
android:layout_marginLeft="80dp"
android:layout_marginTop="10dp"
android:paddingBottom="15dp"
+ android:elevation="10dp"
android:text="糖尿病怎么办"
android:textColor="#C0C0C0"
android:textSize="40px"
diff --git a/app/src/main/res/layout/input_layout.xml b/app/src/main/res/layout/input_layout.xml
new file mode 100644
index 0000000..ff6690c
--- /dev/null
+++ b/app/src/main/res/layout/input_layout.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/layout_progress.xml b/app/src/main/res/layout/layout_progress.xml
new file mode 100644
index 0000000..11fa668
--- /dev/null
+++ b/app/src/main/res/layout/layout_progress.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/title_layout.xml b/app/src/main/res/layout/title_layout.xml
new file mode 100644
index 0000000..5ce54db
--- /dev/null
+++ b/app/src/main/res/layout/title_layout.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 8fe5674..e9626cc 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -3,11 +3,12 @@
#3F51B5
#303F9F
#FF4081
-
+ #3F51B5
#000000
-
-
-
+ @android:color/black
+ @android:color/white
+ #00BCD4
+
#ff33b5e5
#33999999
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 63ac2d8..44425bd 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,4 +1,3 @@
- CMKnowledgeGraph
- 你可能感兴趣
+
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 3b49898..fc0aadb 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,13 +1,51 @@
-
+
- -->
+
+
+
+