diff --git a/README.md b/README.md
index e4bf6bb..7484a4e 100644
--- a/README.md
+++ b/README.md
@@ -234,6 +234,6 @@
* POST新建用户信息`params`示例
* 1♂ 0♀
- * `occupation_name`,`physical_name`的值必须和数据库对应
+ * `occupation_name`,`physique`的值必须和数据库对应

diff --git a/app/build.gradle b/app/build.gradle
index 5fcb4c4..ce04b2a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -75,6 +75,8 @@ dependencies {
implementation 'com.github.bumptech.glide:glide:3.8.0'
implementation 'com.android.support:support-v4:19.1.0'
+ //picker
+ implementation 'com.contrarywind:Android-PickerView:4.1.6'
//okhttp 网络通信库
implementation 'com.squareup.okhttp3:okhttp:3.11.0'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 262fe2c..3055424 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -24,6 +24,11 @@
+
+
+
+
+
-
+
-
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/NutritionMaster.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/NutritionMaster.java
index ff65488..67edc29 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/NutritionMaster.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/NutritionMaster.java
@@ -4,9 +4,21 @@ import android.app.Activity;
import android.app.Application;
import android.os.Bundle;
+import com.example.ninefourone.nutritionmaster.bean.MyUser;
+
+import com.example.ninefourone.nutritionmaster.bean.Occupation;
+import com.example.ninefourone.nutritionmaster.utils.ConstantUtils;
+import com.example.ninefourone.nutritionmaster.utils.WebUtils;
+import com.google.gson.Gson;
import com.orhanobut.logger.AndroidLogAdapter;
import com.orhanobut.logger.Logger;
+import java.io.IOException;
+
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.Response;
+
/**
* Created by ScorpioMiku on 2018/8/26.
@@ -16,11 +28,14 @@ public class NutritionMaster extends Application {
public static NutritionMaster mInstance;
private int appCount = 0;
+ public static MyUser user;
+
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
init();
+ initUser();
}
/**
@@ -64,6 +79,7 @@ public class NutritionMaster extends Application {
}
});
+ initOccupations();
}
public static NutritionMaster getInstance() {
@@ -79,4 +95,37 @@ public class NutritionMaster extends Application {
return appCount > 0;
}
+
+ /**
+ * 初始化用户信息
+ */
+ private void initUser() {
+ user = new MyUser();
+ user.setUsername("ScorpioMiku");
+ }
+
+ /**
+ * 初始化职业常量
+ */
+ private void initOccupations() {
+
+ WebUtils.getAllOccupations(new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+ e.printStackTrace();
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ Occupation[] occupations = new Gson().fromJson(response.body().string(), Occupation[].class);
+// Logger.d(Arrays.toString(occupations));
+ for (int i = 0; i < occupations.length; i++) {
+ ConstantUtils.occupationList.add(occupations[i].getOccupation_name());
+ }
+ }
+ });
+
+ }
+
+
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CardAdapter.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CardAdapter.java
index a2dd942..80f5bc3 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CardAdapter.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CardAdapter.java
@@ -39,7 +39,7 @@ public class CardAdapter extends RecyclerView.Adapter {
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onBindViewHolder(CardHolder holder, int position) {
- holder.bindView(mList.get(position).getPictureId(), mList.get(position).getTitle(), context);
+ holder.bindView(mList.get(position).getPictureId(), mList.get(position), context);
}
@Override
@@ -51,13 +51,13 @@ public class CardAdapter extends RecyclerView.Adapter {
* 右划
*/
public void swipe2Right() {
- Logger.d("右划");
+// Logger.d("右划");
}
/**
* 左划
*/
public void swipe2left() {
- Logger.d("左划");
+// Logger.d("左划");
}
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CardHolder.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CardHolder.java
index 8a6a3b8..6a0610b 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CardHolder.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CardHolder.java
@@ -11,6 +11,7 @@ import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.example.ninefourone.nutritionmaster.R;
+import com.example.ninefourone.nutritionmaster.bean.DailyCard;
import com.example.ninefourone.nutritionmaster.modules.viewpagerfragments.customization.CustomizationActivity;
import com.orhanobut.logger.Logger;
@@ -41,12 +42,13 @@ public class CardHolder extends RecyclerView.ViewHolder {
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
- public void bindView(int picId, String text, final Context context) {
- tvName.setText(text);
+ public void bindView(int picId, DailyCard dailyCard, final Context context) {
+ tvName.setText(dailyCard.getTitle());
+ tvSign.setText(dailyCard.getDescription());
// ivPhoto.setImageDrawable(context.getDrawable(picId));
Glide.with(context).load(picId).into(ivPhoto);
i = new Intent(context, CustomizationActivity.class);
- i.putExtra("SEND_CODE", text);
+ i.putExtra("SEND_CODE", dailyCard.getTitle());
// Logger.d(text);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
@@ -54,7 +56,6 @@ public class CardHolder extends RecyclerView.ViewHolder {
context.startActivity(i);
}
});
-
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseActivity.java
index d1f44e1..614d9e1 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseActivity.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseActivity.java
@@ -4,6 +4,10 @@ import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
+import com.example.ninefourone.nutritionmaster.NutritionMaster;
+import com.example.ninefourone.nutritionmaster.bean.MyUser;
+import com.orhanobut.logger.Logger;
+
import butterknife.ButterKnife;
import butterknife.Unbinder;
@@ -13,16 +17,18 @@ import butterknife.Unbinder;
public abstract class BaseActivity extends AppCompatActivity {
private Unbinder unbinder;
+ protected MyUser user;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ this.user = NutritionMaster.user;
setContentView(getLayoutId());
unbinder = ButterKnife.bind(this);
initViews(savedInstanceState);
initToolBar();
- }
+ }
/**
@@ -85,4 +91,22 @@ public abstract class BaseActivity extends AppCompatActivity {
super.onDestroy();
unbinder.unbind();
}
+
+ protected void upUser() {
+ NutritionMaster.user = user;
+ Logger.d("用户信息已改"+NutritionMaster.user.toString());
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ backChangeData();
+ }
+
+ /**
+ * 填写完信息返回Activity调用
+ */
+ protected void backChangeData() {
+
+ }
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseDialog.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseDialog.java
new file mode 100644
index 0000000..ccb41a6
--- /dev/null
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseDialog.java
@@ -0,0 +1,30 @@
+package com.example.ninefourone.nutritionmaster.base;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.support.v7.app.AlertDialog;
+
+import com.example.ninefourone.nutritionmaster.NutritionMaster;
+import com.example.ninefourone.nutritionmaster.bean.MyUser;
+
+/**
+ * Created by ScorpioMiku on 2018/10/1.
+ */
+
+public abstract class BaseDialog extends AlertDialog.Builder {
+
+ protected AlertDialog dialog;
+
+ public BaseDialog(@NonNull Context context) {
+ super(context);
+ }
+
+ protected void upUser(MyUser user) {
+ NutritionMaster.user = user;
+ }
+
+ public void showDialog() {
+ dialog.show();
+ }
+
+}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseFragment.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseFragment.java
index 6631ea7..fb21713 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseFragment.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseFragment.java
@@ -9,6 +9,10 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import com.example.ninefourone.nutritionmaster.NutritionMaster;
+import com.example.ninefourone.nutritionmaster.bean.MyUser;
+import com.orhanobut.logger.Logger;
+
import butterknife.ButterKnife;
import butterknife.Unbinder;
@@ -17,6 +21,7 @@ import butterknife.Unbinder;
*/
public abstract class BaseFragment extends Fragment {
+ private MyUser user;
private View parentView;
private FragmentActivity activity;
protected boolean isPrepared;
@@ -39,6 +44,7 @@ public abstract class BaseFragment extends Fragment {
super.onViewCreated(view, savedInstanceState);
unbinder = ButterKnife.bind(this, view);
initView(savedInstanceState);
+ this.user = NutritionMaster.user;
}
@@ -50,7 +56,6 @@ public abstract class BaseFragment extends Fragment {
public abstract void initView(Bundle state);
-
@Override
public void onResume() {
super.onResume();
@@ -150,5 +155,9 @@ public abstract class BaseFragment extends Fragment {
protected void finishTask() {
}
+ protected void upUser() {
+ NutritionMaster.user = user;
+ Logger.d("用户信息已改"+NutritionMaster.user.toString());
+ }
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/FoodMaterial.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/FoodMaterial.java
index 02b9b02..1ebf997 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/FoodMaterial.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/FoodMaterial.java
@@ -1,5 +1,7 @@
package com.example.ninefourone.nutritionmaster.bean;
+import java.util.List;
+
public class FoodMaterial {
/**
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/MyUser.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/MyUser.java
index c95884d..feebe0d 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/MyUser.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/MyUser.java
@@ -100,8 +100,8 @@ public class MyUser {
return physical_name;
}
- public void setPhysical_name(String physical_name) {
- this.physical_name = physical_name;
+ public void setPhysique(Physique physique) {
+ this.physique = physique;
}
public String getPassword() {
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Physique.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Physique.java
index 3c2c7ee..3b0b8fd 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Physique.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Physique.java
@@ -14,14 +14,6 @@ public class Physique {
private ElementsBean elements;
private List cure_material;
- @Override
- public String toString() {
- return "Physique{" +
- "physical_name='" + physical_name + '\'' +
- ", elements=" + elements +
- ", cure_material=" + cure_material +
- '}';
- }
public String getPhysical_name() {
return physical_name;
@@ -47,6 +39,62 @@ public class Physique {
this.cure_material = cure_material;
}
+
+ private String imageUrl;
+ private String expression;
+ private String characteristic;
+ private String mentality;
+ private String matters;
+
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getExpression() {
+ return expression;
+ }
+
+ public void setExpression(String expression) {
+ this.expression = expression;
+ }
+
+ public String getCharacteristic() {
+ return characteristic;
+ }
+
+ public void setCharacteristic(String characteristic) {
+ this.characteristic = characteristic;
+ }
+
+ public String getMentality() {
+ return mentality;
+ }
+
+ public void setMentality(String mentality) {
+ this.mentality = mentality;
+ }
+
+ public String getMatters() {
+ return matters;
+ }
+
+ public void setMatters(String matters) {
+ this.matters = matters;
+ }
+
+ @Override
+ public String toString() {
+ return "Physique{" +
+ "physical_name='" + physical_name + '\'' +
+ ", cure_material=" + cure_material +
+ '}';
+ }
+
public static class ElementsBean {
/**
* id : 81
@@ -343,5 +391,6 @@ public class Physique {
public void setThiamine(float thiamine) {
this.thiamine = thiamine;
}
+
}
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/User.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/User.java
deleted file mode 100644
index 54c888c..0000000
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/User.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.example.ninefourone.nutritionmaster.bean;
-
-/**
- * Created by ScorpioMiku on 2018/8/30.
- */
-
-public class User {
- private float height;
- private float weight;
- private float BMI;
- private String sex;
- private int age;
- private String job;
-}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/camera/FoodMaterialCamera.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/camera/FoodMaterialCamera.java
index 2477de1..0c15f16 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/camera/FoodMaterialCamera.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/camera/FoodMaterialCamera.java
@@ -7,6 +7,7 @@ import android.hardware.Camera;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
+import android.view.Display;
import android.view.Surface;
import android.view.View;
import android.view.Window;
@@ -17,6 +18,7 @@ import android.widget.TextView;
import com.example.ninefourone.nutritionmaster.R;
import com.example.ninefourone.nutritionmaster.utils.MessageUtils;
+import com.orhanobut.logger.Logger;
import butterknife.BindView;
import butterknife.ButterKnife;
@@ -42,6 +44,8 @@ public class FoodMaterialCamera extends AppCompatActivity {
private CameraPreview mPreview;
private int mCameraId = Camera.CameraInfo.CAMERA_FACING_BACK;
+ private int widthPixel;
+ private float heightPixel;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -55,6 +59,9 @@ public class FoodMaterialCamera extends AppCompatActivity {
//注意:上面两个设置必须写在setContentView前面
setContentView(R.layout.cameras_layout);
ButterKnife.bind(this);
+ Display display = getWindowManager().getDefaultDisplay();
+ widthPixel = display.getWidth();
+ heightPixel = display.getHeight() * (14.0f / 16);
if (!checkCameraHardware(this)) {
MessageUtils.MakeToast("不支持相机");
@@ -65,6 +72,12 @@ public class FoodMaterialCamera extends AppCompatActivity {
setCameraDisplayOrientation(this, mCameraId, mCamera);
}
+ @Override
+ public void onWindowFocusChanged(boolean hasFocus) {
+ super.onWindowFocusChanged(hasFocus);
+
+ }
+
/**
* 检查当前设备是否有相机
*
@@ -109,8 +122,10 @@ public class FoodMaterialCamera extends AppCompatActivity {
Camera c = null;
try {
c = Camera.open();
+
Camera.Parameters mParameters = c.getParameters();
- mParameters.setPictureSize(720, 1280);
+ Logger.d(widthPixel+", "+heightPixel);
+ mParameters.setPictureSize(widthPixel, (int) heightPixel);
c.setParameters(mParameters);
} catch (Exception e) {
e.printStackTrace();
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java
index 22c45e4..2ee2ccd 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java
@@ -2,7 +2,7 @@ package com.example.ninefourone.nutritionmaster.modules;
import android.annotation.SuppressLint;
import android.content.Intent;
-import android.graphics.Color;
+import android.graphics.Paint;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
@@ -12,19 +12,26 @@ import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
-import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
import com.ToxicBakery.viewpager.transforms.CubeOutTransformer;
+import com.akexorcist.roundcornerprogressbar.RoundCornerProgressBar;
+import com.bumptech.glide.Glide;
import com.cb.ratingbar.CBRatingBar;
+import com.example.ninefourone.nutritionmaster.NutritionMaster;
import com.example.ninefourone.nutritionmaster.R;
import com.example.ninefourone.nutritionmaster.adapter.HomePagerAdapter;
import com.example.ninefourone.nutritionmaster.base.BaseActivity;
import com.example.ninefourone.nutritionmaster.camera.FoodMaterialCamera;
-import com.example.ninefourone.nutritionmaster.modules.addinformation.AddActivity;
+import com.example.ninefourone.nutritionmaster.modules.addinformation.AddInformationActivity;
+import com.example.ninefourone.nutritionmaster.modules.addinformation.AddPhysiqueActivity;
import com.example.ninefourone.nutritionmaster.modules.information.InformationActivity;
import com.example.ninefourone.nutritionmaster.ui.NoScrollViewPager;
+import com.example.ninefourone.nutritionmaster.utils.CalculateUtils;
+import com.example.ninefourone.nutritionmaster.utils.ConstantUtils;
import com.example.ninefourone.nutritionmaster.utils.MessageUtils;
import com.example.ninefourone.nutritionmaster.utils.PermissionUtils;
import com.flyco.tablayout.SlidingTabLayout;
@@ -64,8 +71,8 @@ public class MainActivity extends BaseActivity {
NoScrollViewPager viewPager;
@BindView(R.id.sliding_tab_layout)
SlidingTabLayout slidingTabLayout;
- @BindView(R.id.cb_rating_bar)
- CBRatingBar cbRatingBar;
+ @BindView(R.id.score_bar)
+ CBRatingBar scoreBar;
@BindView(R.id.toolbar_user_avatar)
CircularImageView toolbarUserAvatar;
@BindView(R.id.drawer_user_avatar)
@@ -85,6 +92,26 @@ public class MainActivity extends BaseActivity {
LinearLayout informationLayout;
@BindView(R.id.title_layout)
AppBarLayout titleLayout;
+ @BindView(R.id.user_nick_name)
+ TextView userNickName;
+ @BindView(R.id.user_occupation_text)
+ TextView userOccupationText;
+ @BindView(R.id.container)
+ RelativeLayout container;
+ @BindView(R.id.adder_infor)
+ TextView adderInfor;
+ @BindView(R.id.add_infor_ll)
+ LinearLayout addInforLl;
+ @BindView(R.id.show_information)
+ LinearLayout showInformation;
+ @BindView(R.id.bmi_bar)
+ RoundCornerProgressBar bmiBar;
+ @BindView(R.id.height_bar)
+ RoundCornerProgressBar heightBar;
+ @BindView(R.id.weight_bar)
+ RoundCornerProgressBar weightBar;
+ @BindView(R.id.tool_bar_nickname)
+ TextView toolBarNickname;
@Override
@@ -105,7 +132,6 @@ public class MainActivity extends BaseActivity {
} else {
titleLayout.setBackgroundColor(getColor(R.color.bar_open));
}
-
}
@Override
@@ -123,7 +149,8 @@ public class MainActivity extends BaseActivity {
* 初始化ViewPager
*/
private void initViewPager() {
- HomePagerAdapter homePagerAdapter = new HomePagerAdapter(getSupportFragmentManager(), this);
+ HomePagerAdapter homePagerAdapter = new HomePagerAdapter(getSupportFragmentManager(),
+ this);
viewPager.setOffscreenPageLimit(3);
viewPager.setAdapter(homePagerAdapter);
//CubeInTransformer 内旋
@@ -136,7 +163,7 @@ public class MainActivity extends BaseActivity {
@Override
public void initToolBar() {
-
+ toolBarNickname.setText(user.getUsername());
}
@Override
@@ -151,7 +178,7 @@ public class MainActivity extends BaseActivity {
super.onCreate(savedInstanceState);
// TODO: add setContentView(...) invocation
ButterKnife.bind(this);
- Logger.d("oncreate");
+// Logger.d("oncreate");
setSupportActionBar(toolBar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
askPermission();
@@ -159,7 +186,7 @@ public class MainActivity extends BaseActivity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
- Logger.d("oncreateMenu");
+// Logger.d("oncreateMenu");
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem item = menu.findItem(R.id.id_action_search);
searchView.setMenuItem(item);
@@ -168,7 +195,7 @@ public class MainActivity extends BaseActivity {
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
- Logger.d("prepareMenu");
+// Logger.d("prepareMenu");
return super.onPrepareOptionsMenu(menu);
}
@@ -277,6 +304,7 @@ public class MainActivity extends BaseActivity {
}
+
/**
* 初始化悬浮按钮
*/
@@ -287,7 +315,8 @@ public class MainActivity extends BaseActivity {
.listener(new OnBMClickListener() {
@Override
public void onBoomButtonClick(int index) {
- Intent cameraIntent = new Intent(MainActivity.this, FoodMaterialCamera.class);
+ Intent cameraIntent = new Intent(MainActivity.this,
+ FoodMaterialCamera.class);
startActivity(cameraIntent);
}
});
@@ -298,6 +327,23 @@ public class MainActivity extends BaseActivity {
boomMenuButton.addBuilder(builder2);
}
+
+ /**
+ * 初始化个人信息界面(UI)
+ */
+ private void initInforView() {
+// Logger.d(NutritionMaster.user.toString());
+ adderInfor.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
+ if (NutritionMaster.user.getHeight() != 0) {
+ showInformation.setVisibility(View.VISIBLE);
+ adderInfor.setVisibility(View.INVISIBLE);
+ } else {
+ showInformation.setVisibility(View.INVISIBLE);
+ adderInfor.setVisibility(View.VISIBLE);
+ }
+
+ }
+
/**
* 请求权限
*/
@@ -306,27 +352,140 @@ public class MainActivity extends BaseActivity {
}
@Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
+ @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
MessageUtils.MakeToast("权限赋予成功");
}
- @OnClick({R.id.navigation_layout, R.id.add_information_button})
+
+ /**
+ * 点击事件
+ *
+ * @param view
+ */
+
+ @OnClick({R.id.navigation_layout, R.id.add_information_button, R.id.information_layout,
+ R.id.user_occupation_text, R.id.adder_infor})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.navigation_layout:
mDrawer.openMenu();
break;
case R.id.add_information_button:
- Intent intent = new Intent(MainActivity.this, AddActivity.class);
+ Intent intent = new Intent(MainActivity.this, AddPhysiqueActivity.class);
startActivity(intent);
break;
+ case R.id.information_layout:
+ Intent informationIntent = new Intent(MainActivity.this, InformationActivity.class);
+ startActivity(informationIntent);
+ break;
+ case R.id.adder_infor:
+ Intent i = new Intent(MainActivity.this, AddInformationActivity.class);
+ startActivity(i);
+ break;
}
}
- @OnClick(R.id.information_layout)
- public void onViewClicked() {
- Intent intent = new Intent(MainActivity.this, InformationActivity.class);
- startActivity(intent);
+
+ @RequiresApi(api = Build.VERSION_CODES.M)
+ @Override
+ protected void backChangeData() {
+ super.backChangeData();
+ initInforView();
+ if (NutritionMaster.user.getOccupation_name().equals("")) {
+
+ } else {
+ userOccupationText.setText("职业: " + NutritionMaster.user.getOccupation_name());
+ }
+ initInformationBar();
+ }
+
+ /**
+ * 初始化个人信息的条状bar还有状态星级的UI
+ */
+ @RequiresApi(api = Build.VERSION_CODES.M)
+ private void initInformationBar() {
+
+ scoreBar.setCanTouch(false);
+ if (NutritionMaster.user.getHeight() != 0 && NutritionMaster.user.getAge() != 0) {
+
+ float maxBmi = 40.0f;
+ float maxHeight = 250.0f;
+ float maxWeight = 130.0f;
+
+ float height = NutritionMaster.user.getHeight();
+ float weight = NutritionMaster.user.getWeight();
+ float age = NutritionMaster.user.getAge();
+ float averageWeight = 0;
+ float averageHeight = 0;
+ float averageBmi = 0;
+ int index = (int) (age >= 20 ? ((age - 20) / 5 + 17) : (age - 3));
+ if (NutritionMaster.user.getSex() == 0) {
+ //女性
+ averageWeight = ConstantUtils.averageGirlWeight.get(index);
+ averageHeight = ConstantUtils.averageGirlHeight.get(index);
+ averageBmi = CalculateUtils.BMI(averageHeight, averageWeight);
+ } else if (NutritionMaster.user.getSex() == 1) {
+ averageWeight = ConstantUtils.averageBoyWeight.get(index);
+ averageHeight = ConstantUtils.averageBoyHeight.get(index);
+ averageBmi = CalculateUtils.BMI(averageHeight, averageWeight);
+ } else {
+ Logger.e("非男非女?");
+ return;
+ }
+ float bmi = CalculateUtils.BMI(height, weight);
+
+ float bmiAverage = averageBmi / maxBmi * 100.0f;
+ float bmiSelf = bmi / maxBmi * 100.0f;
+
+ if (bmiAverage > bmiSelf) {
+ bmiBar.setMax(100);
+ bmiBar.setSecondaryProgress(bmiAverage);
+ bmiBar.setProgress(bmiSelf);
+ } else {
+ bmiBar.setMax(100);
+ bmiBar.setSecondaryProgress(bmiSelf);
+ bmiBar.setProgress(bmiAverage);
+ bmiBar.setProgressColor(getColor(R.color.color_bar_deeper));
+ bmiBar.setSecondaryProgressColor(getColor(R.color.color_bar_self));
+ }
+
+
+ float heightAverage = averageHeight / maxHeight * 100.0f;
+ float heightSelf = height / maxHeight * 100.0f;
+ if (heightAverage > heightSelf) {
+ heightBar.setMax(100);
+ heightBar.setSecondaryProgress(heightAverage);
+ heightBar.setProgress(heightSelf);
+ } else {
+ heightBar.setMax(100);
+ heightBar.setSecondaryProgress(heightSelf);
+ heightBar.setProgress(heightAverage);
+ heightBar.setProgressColor(getColor(R.color.color_bar_deeper));
+ heightBar.setSecondaryProgressColor(getColor(R.color.color_bar_self));
+ }
+
+
+ float weightAverage = averageWeight / maxWeight * 100.0f;
+ float weightSelf = weight / maxWeight * 100.0f;
+ if (weightAverage > weightSelf) {
+ weightBar.setMax(100);
+ weightBar.setSecondaryProgress(weightAverage);
+ weightBar.setProgress(weightSelf);
+ } else {
+ weightBar.setMax(100);
+ weightBar.setSecondaryProgress(weightSelf);
+ weightBar.setProgress(weightAverage);
+ weightBar.setProgressColor(getColor(R.color.color_bar_deeper));
+ weightBar.setSecondaryProgressColor(getColor(R.color.color_bar_self));
+ }
+
+ Logger.d("bmi:" + averageBmi / maxBmi * 100.0f + "|" + bmi / maxBmi * 100.0f + "\n" +
+ "height:" + averageHeight / maxHeight * 100.0f + "|" + height / maxHeight * 100.0f + "\n" +
+ "weight" + averageWeight / maxWeight * 100.0f + "|" + weight / maxWeight * 100.0f);
+
+
+ }
}
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddActivity.java
deleted file mode 100644
index 970588d..0000000
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddActivity.java
+++ /dev/null
@@ -1,167 +0,0 @@
-package com.example.ninefourone.nutritionmaster.modules.addinformation;
-
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.CardView;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.Window;
-import android.view.WindowManager;
-import android.widget.BaseAdapter;
-import android.widget.Button;
-import android.widget.ImageView;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import com.example.ninefourone.nutritionmaster.R;
-import com.example.ninefourone.nutritionmaster.utils.ConstantUtils;
-import com.example.ninefourone.nutritionmaster.utils.MessageUtils;
-import com.github.czy1121.view.TurnCardListView;
-
-import butterknife.BindView;
-import butterknife.ButterKnife;
-import butterknife.OnClick;
-
-public class AddActivity extends AppCompatActivity {
-
- @BindView(R.id.card_list)
- TurnCardListView cardList;
- @BindView(R.id.bottom_content)
- RelativeLayout bottomContent;
- @BindView(R.id.back_button)
- ImageView backButton;
- @BindView(R.id.result_layout)
- CardView resultLayout;
-
-
- // private int[] colors = {0xff3F51B5, 0xff673AB7, 0xff006064, 0xffC51162, 0xffFFEB3B, 0xff795548, 0xff9E9E9E};
- private int[] colors = {0xffdef6f9, 0xffd6eeec, 0xffB2EBF2, 0xffB2DFDB, 0xff8ed0ca, 0xff80CBC4, 0xff4DB6AC, 0xff3c948b};
- private Button[] firstButtons = new Button[ConstantUtils.questionList.length];
- private Button[] secondButtons = new Button[ConstantUtils.questionList.length];
- private Button[] thirdButtons = new Button[ConstantUtils.questionList.length];
- private TextView[] titleViews = new TextView[ConstantUtils.questionList.length];
-
- private Button[][] buttonList;
-
-
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- requestWindowFeature(Window.FEATURE_NO_TITLE);
- //设置全屏
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
- WindowManager.LayoutParams.FLAG_FULLSCREEN);
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_add);
- ButterKnife.bind(this);
- buttonList = new Button[][]{
- firstButtons,
- secondButtons,
- thirdButtons
- };
- initAddView();
- }
-
- private void initAddView() {
- BaseAdapter adapter = new BaseAdapter() {
-
-
- @Override
- public int getCount() {
- return colors.length;
- }
-
- @Override
- public Object getItem(int position) {
- return position;
- }
-
- @Override
- public long getItemId(int position) {
- return position;
- }
-
- @Override
- public View getView(final int position, View child, ViewGroup parent) {
-
- child = LayoutInflater.from(parent.getContext()).inflate(R.layout.add_item, parent, false);
- child.findViewById(R.id.image).setBackgroundColor(colors[position]);
- titleViews[position] = child.findViewById(R.id.title_view);
- titleViews[position].setText(ConstantUtils.questionList[position]);
-
- firstButtons[position] = child.findViewById(R.id.choose_first);
- firstButtons[position].setBackgroundColor(colors[position] + 30);
-
-
- secondButtons[position] = child.findViewById(R.id.choose_second);
- secondButtons[position].setBackgroundColor(colors[position] + 30);
-
-
- thirdButtons[position] = child.findViewById(R.id.choose_third);
- thirdButtons[position].setBackgroundColor(colors[position] + 30);
-
-
- if (position != ConstantUtils.questionList.length - 1) {
- firstButtons[position].setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- firstButtons[position].setBackgroundColor(colors[position] - 60);
- secondButtons[position].setBackgroundColor(colors[position] + 30);
- thirdButtons[position].setBackgroundColor(colors[position] + 30);
- cardList.turnTo(position + 1);
- }
- });
- } else {
- firstButtons[position].setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- resultLayout.setVisibility(View.VISIBLE);
- cardList.setVisibility(View.INVISIBLE);
- }
- });
- }
- secondButtons[position].setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- firstButtons[position].setBackgroundColor(colors[position] + 30);
- thirdButtons[position].setBackgroundColor(colors[position] + 30);
- secondButtons[position].setBackgroundColor(colors[position] - 60);
- cardList.turnTo(position + 1);
- }
- });
- thirdButtons[position].setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- firstButtons[position].setBackgroundColor(colors[position] + 30);
- secondButtons[position].setBackgroundColor(colors[position] + 30);
- thirdButtons[position].setBackgroundColor(colors[position] - 60);
- cardList.turnTo(position + 1);
- }
- });
-
- for (int i = 0; i < ConstantUtils.answerList[position].length; i++) {
- buttonList[i][position].setText(ConstantUtils.answerList[position][i]);
- buttonList[i][position].setVisibility(View.VISIBLE);
- }
- return child;
- }
-
- };
-
- cardList.setAdapter(adapter);
- cardList.setOnTurnListener(new TurnCardListView.OnTurnListener() {
- @Override
- public void onTurned(int position) {
- bottomContent.setBackgroundColor(colors[position] - 60);
- }
- });
-
-
- }
-
- @OnClick(R.id.back_button)
- public void onViewClicked() {
- finish();
- }
-}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddInformationActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddInformationActivity.java
new file mode 100644
index 0000000..dc112fe
--- /dev/null
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddInformationActivity.java
@@ -0,0 +1,179 @@
+package com.example.ninefourone.nutritionmaster.modules.addinformation;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
+import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
+import com.bigkoo.pickerview.view.OptionsPickerView;
+import com.example.ninefourone.nutritionmaster.NutritionMaster;
+import com.example.ninefourone.nutritionmaster.R;
+import com.example.ninefourone.nutritionmaster.base.BaseActivity;
+import com.example.ninefourone.nutritionmaster.bean.MyUser;
+import com.example.ninefourone.nutritionmaster.modules.MainActivity;
+import com.example.ninefourone.nutritionmaster.utils.ConstantUtils;
+import com.example.ninefourone.nutritionmaster.utils.MessageUtils;
+
+public class AddInformationActivity extends BaseActivity {
+ private TextView ageTextView;
+ private TextView heightTextView;
+ private TextView weightTextView;
+ private TextView sexTextView;
+ private TextView occupationTextView;
+
+ private ImageView ageImageView;
+ private ImageView sexImageView;
+ private ImageView heightImageView;
+ private ImageView weightImageView;
+ private ImageView occupationImageView;
+
+ private Button okButton;
+
+ private OptionsPickerView agePicker;
+ private OptionsPickerView weightPicker;
+ private OptionsPickerView heightPicker;
+ private OptionsPickerView sexPicker;
+ private OptionsPickerView occupationPicker;
+
+ private Context context;
+
+ @Override
+ public int getLayoutId() {
+ return R.layout.add_information_activity;
+ }
+
+ @Override
+ public void initViews(Bundle savedInstanceState) {
+
+ context = this;
+ ageImageView = findViewById(R.id.age_image_view);
+ sexImageView = findViewById(R.id.sex_image_view);
+ heightImageView = findViewById(R.id.height_image_view);
+ weightImageView = findViewById(R.id.weight_image_view);
+ occupationImageView = findViewById(R.id.occupation_image_view);
+
+
+ ageTextView = findViewById(R.id.age_text_view);
+ sexTextView = findViewById(R.id.sex_text_view);
+ weightTextView = findViewById(R.id.weight_text_view);
+ heightTextView = findViewById(R.id.height_text_view);
+ occupationTextView = findViewById(R.id.occupation_text_view);
+
+ okButton = findViewById(R.id.ok_button);
+
+ occupationPicker = new OptionsPickerBuilder(context, new OnOptionsSelectListener() {
+ @Override
+ public void onOptionsSelect(int options1, int options2, int options3, View v) {
+ occupationTextView.setText(ConstantUtils.occupationList.get(options1));
+ }
+ }).build();
+ occupationPicker.setPicker(ConstantUtils.occupationList);
+
+ agePicker = new OptionsPickerBuilder(context, new OnOptionsSelectListener() {
+ @Override
+ public void onOptionsSelect(int options1, int options2, int options3, View v) {
+ ageTextView.setText(ConstantUtils.ageList.get(options1));
+ }
+ }).build();
+ agePicker.setPicker(ConstantUtils.ageList);
+ agePicker.setSelectOptions(25);
+
+
+ sexPicker = new OptionsPickerBuilder(context, new OnOptionsSelectListener() {
+ @Override
+ public void onOptionsSelect(int options1, int options2, int options3, View v) {
+ sexTextView.setText(ConstantUtils.sexList.get(options1));
+ }
+ }).build();
+ sexPicker.setPicker(ConstantUtils.sexList);
+
+
+ heightPicker = new OptionsPickerBuilder(context, new OnOptionsSelectListener() {
+ @Override
+ public void onOptionsSelect(int options1, int options2, int options3, View v) {
+ heightTextView.setText(ConstantUtils.heightList.get(options1));
+ }
+ }).build();
+ heightPicker.setPicker(ConstantUtils.heightList);
+ heightPicker.setSelectOptions(119);
+
+ weightPicker = new OptionsPickerBuilder(context, new OnOptionsSelectListener() {
+ @Override
+ public void onOptionsSelect(int options1, int options2, int options3, View v) {
+ weightTextView.setText(ConstantUtils.weightList.get(options1));
+ }
+ }).build();
+ weightPicker.setPicker(ConstantUtils.weightList);
+ weightPicker.setSelectOptions(59);
+
+
+ occupationImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ occupationPicker.show();
+ }
+ });
+
+ ageImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ agePicker.show();
+ }
+ });
+ sexImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ sexPicker.show();
+ }
+ });
+ heightImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ heightPicker.show();
+ }
+ });
+ weightImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ weightPicker.show();
+ }
+ });
+
+ okButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ if (ageTextView.getText().toString().equals("年龄") || weightTextView.getText().toString().equals("体重")
+ || sexTextView.getText().toString().equals("性别") || heightTextView.getText().toString().equals("身高")||
+ occupationTextView.getText().toString().equals("职业")) {
+ MessageUtils.MakeToast("请点击图片填写所有信息");
+ } else {
+ user.setHeight(Integer.valueOf(heightTextView.getText().toString().split("c")[0]));
+ user.setWeight(Integer.valueOf(weightTextView.getText().toString().split("k")[0]));
+ user.setAge(Integer.valueOf(ageTextView.getText().toString().split("岁")[0]));
+ user.setSex(sexTextView.getText().toString());
+ user.setOccupation_name(occupationTextView.getText().toString());
+ upUser();
+ MessageUtils.MakeToast("信息填写成功");
+ finish();
+ }
+
+ }
+ });
+
+ }
+
+ @Override
+ public void initToolBar() {
+
+ }
+
+ @Override
+ public void onPointerCaptureChanged(boolean hasCapture) {
+
+ }
+}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddPhysiqueActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddPhysiqueActivity.java
new file mode 100644
index 0000000..cb99a0b
--- /dev/null
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddPhysiqueActivity.java
@@ -0,0 +1,428 @@
+package com.example.ninefourone.nutritionmaster.modules.addinformation;
+
+import android.os.Bundle;
+import android.support.v7.widget.CardView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.BaseAdapter;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.bumptech.glide.Glide;
+import com.example.ninefourone.nutritionmaster.R;
+import com.example.ninefourone.nutritionmaster.base.BaseActivity;
+import com.example.ninefourone.nutritionmaster.bean.Physique;
+import com.example.ninefourone.nutritionmaster.utils.ConstantUtils;
+import com.example.ninefourone.nutritionmaster.utils.MessageUtils;
+import com.github.czy1121.view.TurnCardListView;
+import com.github.siyamed.shapeimageview.CircularImageView;
+import com.orhanobut.logger.Logger;
+
+import java.util.Arrays;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+
+public class AddPhysiqueActivity extends BaseActivity {
+
+
+ @BindView(R.id.card_list)
+ TurnCardListView cardList;
+ @BindView(R.id.back_button)
+ ImageView backButton;
+ @BindView(R.id.result_layout)
+ CardView resultLayout;
+ @BindView(R.id.bottom_content)
+ RelativeLayout bottomContent;
+ @BindView(R.id.physique_image)
+ CircularImageView physiqueImage;
+ @BindView(R.id.physique_name_text_view)
+ TextView physiqueNameTextView;
+ @BindView(R.id.expression_text_view)
+ TextView expressionTextView;
+ @BindView(R.id.characteristic_text_view)
+ TextView characteristicTextView;
+ @BindView(R.id.mentality_text_view)
+ TextView mentalityTextView;
+ @BindView(R.id.matters_text_view)
+ TextView mattersTextView;
+
+
+ private String result = "";
+ private String physique = "平和质";
+ private float[] counter = {0, 0, 0, 0, 0, 0, 0, 0, -1};
+ private String[] physiques = {"淤血质", "阴虚质", "阳虚质", "痰湿质", "湿热质", "气郁质", "气虚质", "平和质"};
+
+ // private int[] colors = {0xff3F51B5, 0xff673AB7, 0xff006064, 0xffC51162, 0xffFFEB3B, 0xff795548, 0xff9E9E9E};
+ private int[] colors = {0xffdef6f9, 0xffd6eeec, 0xffB2EBF2, 0xffB2DFDB, 0xff8ed0ca, 0xff80CBC4, 0xff4DB6AC, 0xff3c948b};
+ private Button[] firstButtons = new Button[ConstantUtils.questionList.length];
+ private Button[] secondButtons = new Button[ConstantUtils.questionList.length];
+ private Button[] thirdButtons = new Button[ConstantUtils.questionList.length];
+ private TextView[] titleViews = new TextView[ConstantUtils.questionList.length];
+
+ private Button[][] buttonList;
+
+
+ @Override
+ public int getLayoutId() {
+ return R.layout.activity_add;
+ }
+
+ @Override
+ public void initViews(Bundle savedInstanceState) {
+// setContentView();
+ ButterKnife.bind(this);
+ buttonList = new Button[][]{
+ firstButtons,
+ secondButtons,
+ thirdButtons
+ };
+ initAddView();
+ }
+
+ @Override
+ public void initToolBar() {
+
+ }
+
+ private void initAddView() {
+ BaseAdapter adapter = new BaseAdapter() {
+
+ @Override
+ public int getCount() {
+ return colors.length;
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return position;
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+
+ @Override
+ public View getView(final int position, View child, ViewGroup parent) {
+
+
+ child = LayoutInflater.from(parent.getContext()).inflate(R.layout.add_item, parent,
+ false);
+ child.findViewById(R.id.image).setBackgroundColor(colors[position]);
+ titleViews[position] = child.findViewById(R.id.title_view);
+ titleViews[position].setText(ConstantUtils.questionList[position]);
+
+ firstButtons[position] = child.findViewById(R.id.choose_first);
+ firstButtons[position].setBackgroundColor(colors[position] + 30);
+
+
+ secondButtons[position] = child.findViewById(R.id.choose_second);
+ secondButtons[position].setBackgroundColor(colors[position] + 30);
+
+
+ thirdButtons[position] = child.findViewById(R.id.choose_third);
+ thirdButtons[position].setBackgroundColor(colors[position] + 30);
+
+
+ if (position != ConstantUtils.questionList.length - 1) {
+ firstButtons[position].setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ firstButtons[position].setBackgroundColor(colors[position] - 60);
+ secondButtons[position].setBackgroundColor(colors[position] + 30);
+ thirdButtons[position].setBackgroundColor(colors[position] + 30);
+ cardList.turnTo(position + 1);
+ result += "1";
+ }
+ });
+ } else {
+ firstButtons[position].setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ getResult();
+ resultLayout.setVisibility(View.VISIBLE);
+ cardList.setVisibility(View.INVISIBLE);
+ MessageUtils.MakeToast("已将体质信息上传至个人信息");
+
+ }
+ });
+ }
+ secondButtons[position].setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ firstButtons[position].setBackgroundColor(colors[position] + 30);
+ thirdButtons[position].setBackgroundColor(colors[position] + 30);
+ secondButtons[position].setBackgroundColor(colors[position] - 60);
+ cardList.turnTo(position + 1);
+ result += "2";
+ }
+ });
+ thirdButtons[position].setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ firstButtons[position].setBackgroundColor(colors[position] + 30);
+ secondButtons[position].setBackgroundColor(colors[position] + 30);
+ thirdButtons[position].setBackgroundColor(colors[position] - 60);
+ cardList.turnTo(position + 1);
+ result += "3";
+ }
+ });
+
+ for (int i = 0; i < ConstantUtils.answerList[position].length; i++) {
+ buttonList[i][position].setText(ConstantUtils.answerList[position][i]);
+ buttonList[i][position].setVisibility(View.VISIBLE);
+ }
+ return child;
+ }
+
+ };
+
+ cardList.setAdapter(adapter);
+ cardList.setOnTurnListener(new TurnCardListView.OnTurnListener() {
+ @Override
+ public void onTurned(int position) {
+ bottomContent.setBackgroundColor(colors[position] - 60);
+ firstButtons[position].setEnabled(true);
+ secondButtons[position].setEnabled(true);
+ thirdButtons[position].setEnabled(true);
+ }
+ });
+
+
+ }
+
+ @OnClick(R.id.back_button)
+ public void onViewClicked() {
+ finish();
+ }
+
+ /**
+ * 判断体质
+ */
+ private void getResult() {
+
+ float margin = 0.75f;
+
+ String code = result.substring(1);
+ char[] codes = code.toCharArray();
+ Logger.d(Arrays.toString(codes));
+
+ switch ((int) (codes[0]) - 48) {
+ case 1:
+ counter[0]++;
+ counter[1]++;
+
+ counter[3] += margin;
+ break;
+ case 2:
+ counter[2]++;
+ counter[4]++;
+ counter[5]++;
+ counter[5] += 0.3;
+
+ counter[3] += margin;
+ break;
+ case 3:
+ counter[6]++;
+ counter[7]++;
+
+ counter[3] += margin;
+ break;
+ default:
+ Logger.e((int) (codes[0]) + " 没执行");
+ }
+ switch ((int) (codes[1]) - 48) {
+ case 1:
+ counter[0]++;
+
+ counter[2] += margin;
+ counter[3] += margin;
+ counter[6] += margin;
+ break;
+ case 2:
+ counter[4]++;
+
+ counter[2] += margin;
+ counter[3] += margin;
+ counter[6] += margin;
+ break;
+ case 3:
+ counter[1]++;
+ counter[5]++;
+ counter[7]++;
+
+ counter[2] += margin;
+ counter[3] += margin;
+ counter[6] += margin;
+ break;
+ }
+ switch ((int) (codes[2]) - 48) {
+ case 1:
+ counter[1]++;
+ counter[4]++;
+
+ counter[0] += margin;
+ counter[2] += margin;
+ counter[5] += margin;
+ counter[6] += margin;
+
+ break;
+ case 2:
+ counter[3]++;
+
+ counter[0] += margin;
+ counter[2] += margin;
+ counter[5] += margin;
+ counter[6] += margin;
+ break;
+ case 3:
+ counter[7]++;
+
+ counter[0] += margin;
+ counter[2] += margin;
+ counter[5] += margin;
+ counter[6] += margin;
+ break;
+ }
+ switch ((int) (codes[3]) - 48) {
+ case 1:
+ counter[0]++;
+
+ counter[2]++;
+ counter[5]++;
+ counter[6]++;
+
+ counter[3] += margin;
+ counter[4] += margin;
+ break;
+ case 2:
+ counter[7]++;
+ counter[1]++;
+
+ counter[3] += margin;
+ counter[4] += margin;
+ break;
+ case 3:
+ break;
+ }
+ switch ((int) (codes[4]) - 48) {
+ case 1:
+ counter[3]++;
+
+ counter[1] += margin;
+ counter[2] += margin;
+ counter[4] += margin;
+ counter[5] += margin;
+ counter[6] += margin;
+ break;
+ case 2:
+ counter[5]++;
+
+ counter[1] += margin;
+ counter[2] += margin;
+ counter[4] += margin;
+ counter[5] += margin;
+ counter[6] += margin;
+
+ break;
+ case 3:
+ counter[7]++;
+
+ counter[1] += margin;
+ counter[2] += margin;
+ counter[4] += margin;
+ counter[5] += margin;
+ counter[6] += margin;
+ break;
+ }
+ switch ((int) (codes[5]) - 48) {
+ case 1:
+ counter[2]++;
+ counter[2]++;
+
+ counter[0] += margin;
+ counter[3] += margin;
+ counter[4] += margin;
+ counter[5] += margin;
+ counter[6] += margin;
+ break;
+ case 2:
+ counter[1]++;
+ counter[1]++;
+
+ counter[0] += margin;
+ counter[3] += margin;
+ counter[4] += margin;
+ counter[5] += margin;
+ counter[6] += margin;
+ break;
+ case 3:
+ counter[7]++;
+
+ counter[0] += margin;
+ counter[3] += margin;
+ counter[4] += margin;
+ counter[5] += margin;
+ counter[6] += margin;
+ break;
+ }
+
+ int maxIndex = -1;
+ for (int i = 0; i < counter.length; i++) {
+ if (counter[i] > counter[8]) {
+ maxIndex = i;
+ counter[8] = counter[i];
+ }
+ }
+ physique = physiques[maxIndex];
+ Logger.d(Arrays.toString(counter) + "\n" + physique);
+ Physique phy = new Physique();
+ phy.setPhysical_name(physique);
+ phy.setCharacteristic(ConstantUtils.physiquesCharacteristics[maxIndex]);
+ phy.setExpression(ConstantUtils.physiquesExpressions[maxIndex]);
+ phy.setMentality(ConstantUtils.physiquesMentalitys[maxIndex]);
+ phy.setMatters(ConstantUtils.physiquesMatters[maxIndex]);
+ phy.setImageUrl(ConstantUtils.physiquesImageUrls[maxIndex]);
+ user.setPhysique(phy);
+ upUser();
+ loadInformation(phy);
+
+ }
+
+ @Override
+ public void onPointerCaptureChanged(boolean hasCapture) {
+
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
+ //设置全屏
+ getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
+ WindowManager.LayoutParams.FLAG_FULLSCREEN);
+ super.onCreate(savedInstanceState);
+ // TODO: add setContentView(...) invocation
+ ButterKnife.bind(this);
+ }
+
+ /**
+ * 加载显示的信息
+ *
+ * @param physique
+ */
+ private void loadInformation(Physique physique) {
+ Glide.with(AddPhysiqueActivity.this).load(physique.getImageUrl()).into(physiqueImage);
+ physiqueNameTextView.setText(physique.getPhysical_name());
+ expressionTextView.setText(physique.getExpression());
+ characteristicTextView.setText(physique.getCharacteristic());
+ mentalityTextView.setText(physique.getMentality());
+ mattersTextView.setText(physique.getMatters());
+ }
+}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/login/LoginActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/login/LoginActivity.java
new file mode 100644
index 0000000..c75dae3
--- /dev/null
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/login/LoginActivity.java
@@ -0,0 +1,352 @@
+package com.example.ninefourone.nutritionmaster.modules.login;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.annotation.TargetApi;
+import android.content.pm.PackageManager;
+import android.support.annotation.NonNull;
+import android.support.design.widget.Snackbar;
+import android.support.v7.app.AppCompatActivity;
+import android.app.LoaderManager.LoaderCallbacks;
+
+import android.content.CursorLoader;
+import android.content.Loader;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.AsyncTask;
+
+import android.os.Build;
+import android.os.Bundle;
+import android.provider.ContactsContract;
+import android.text.TextUtils;
+import android.view.KeyEvent;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.inputmethod.EditorInfo;
+import android.widget.ArrayAdapter;
+import android.widget.AutoCompleteTextView;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.example.ninefourone.nutritionmaster.R;
+
+import static android.Manifest.permission.READ_CONTACTS;
+
+/**
+ * A login screen that offers login via email/password.
+ */
+public class LoginActivity extends AppCompatActivity implements LoaderCallbacks {
+
+ /**
+ * Id to identity READ_CONTACTS permission request.
+ */
+ private static final int REQUEST_READ_CONTACTS = 0;
+
+ /**
+ * A dummy authentication store containing known user names and passwords.
+ * TODO: remove after connecting to a real authentication system.
+ */
+ private static final String[] DUMMY_CREDENTIALS = new String[]{
+ "foo@example.com:hello", "bar@example.com:world"
+ };
+ /**
+ * Keep track of the login task to ensure we can cancel it if requested.
+ */
+ private UserLoginTask mAuthTask = null;
+
+ // UI references.
+ private AutoCompleteTextView mEmailView;
+ private EditText mPasswordView;
+ private View mProgressView;
+ private View mLoginFormView;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_login);
+ // Set up the login form.
+ mEmailView = (AutoCompleteTextView) findViewById(R.id.email);
+ populateAutoComplete();
+
+ mPasswordView = (EditText) findViewById(R.id.password);
+ mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
+ @Override
+ public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {
+ if (id == EditorInfo.IME_ACTION_DONE || id == EditorInfo.IME_NULL) {
+ attemptLogin();
+ return true;
+ }
+ return false;
+ }
+ });
+
+ Button mEmailSignInButton = (Button) findViewById(R.id.email_sign_in_button);
+ mEmailSignInButton.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ attemptLogin();
+ }
+ });
+
+ mLoginFormView = findViewById(R.id.login_form);
+ mProgressView = findViewById(R.id.login_progress);
+ }
+
+ private void populateAutoComplete() {
+ if (!mayRequestContacts()) {
+ return;
+ }
+
+ getLoaderManager().initLoader(0, null, this);
+ }
+
+ private boolean mayRequestContacts() {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
+ return true;
+ }
+ if (checkSelfPermission(READ_CONTACTS) == PackageManager.PERMISSION_GRANTED) {
+ return true;
+ }
+ if (shouldShowRequestPermissionRationale(READ_CONTACTS)) {
+ Snackbar.make(mEmailView, R.string.permission_rationale, Snackbar.LENGTH_INDEFINITE)
+ .setAction(android.R.string.ok, new View.OnClickListener() {
+ @Override
+ @TargetApi(Build.VERSION_CODES.M)
+ public void onClick(View v) {
+ requestPermissions(new String[]{READ_CONTACTS}, REQUEST_READ_CONTACTS);
+ }
+ });
+ } else {
+ requestPermissions(new String[]{READ_CONTACTS}, REQUEST_READ_CONTACTS);
+ }
+ return false;
+ }
+
+ /**
+ * Callback received when a permissions request has been completed.
+ */
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
+ @NonNull int[] grantResults) {
+ if (requestCode == REQUEST_READ_CONTACTS) {
+ if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ populateAutoComplete();
+ }
+ }
+ }
+
+
+ /**
+ * Attempts to sign in or register the account specified by the login form.
+ * If there are form errors (invalid email, missing fields, etc.), the
+ * errors are presented and no actual login attempt is made.
+ */
+ private void attemptLogin() {
+ if (mAuthTask != null) {
+ return;
+ }
+
+ // Reset errors.
+ mEmailView.setError(null);
+ mPasswordView.setError(null);
+
+ // Store values at the time of the login attempt.
+ String email = mEmailView.getText().toString();
+ String password = mPasswordView.getText().toString();
+
+ boolean cancel = false;
+ View focusView = null;
+
+ // Check for a valid password, if the user entered one.
+ if (!TextUtils.isEmpty(password) && !isPasswordValid(password)) {
+ mPasswordView.setError(getString(R.string.error_invalid_password));
+ focusView = mPasswordView;
+ cancel = true;
+ }
+
+ // Check for a valid email address.
+ if (TextUtils.isEmpty(email)) {
+ mEmailView.setError(getString(R.string.error_field_required));
+ focusView = mEmailView;
+ cancel = true;
+ } else if (!isEmailValid(email)) {
+ mEmailView.setError(getString(R.string.error_invalid_email));
+ focusView = mEmailView;
+ cancel = true;
+ }
+
+ if (cancel) {
+ // There was an error; don't attempt login and focus the first
+ // form field with an error.
+ focusView.requestFocus();
+ } else {
+ // Show a progress spinner, and kick off a background task to
+ // perform the user login attempt.
+ showProgress(true);
+ mAuthTask = new UserLoginTask(email, password);
+ mAuthTask.execute((Void) null);
+ }
+ }
+
+ private boolean isEmailValid(String email) {
+ //TODO: Replace this with your own logic
+ return email.contains("@");
+ }
+
+ private boolean isPasswordValid(String password) {
+ //TODO: Replace this with your own logic
+ return password.length() > 4;
+ }
+
+ /**
+ * Shows the progress UI and hides the login form.
+ */
+ @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
+ private void showProgress(final boolean show) {
+ // On Honeycomb MR2 we have the ViewPropertyAnimator APIs, which allow
+ // for very easy animations. If available, use these APIs to fade-in
+ // the progress spinner.
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
+ int shortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime);
+
+ mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
+ mLoginFormView.animate().setDuration(shortAnimTime).alpha(
+ show ? 0 : 1).setListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
+ }
+ });
+
+ mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
+ mProgressView.animate().setDuration(shortAnimTime).alpha(
+ show ? 1 : 0).setListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
+ }
+ });
+ } else {
+ // The ViewPropertyAnimator APIs are not available, so simply show
+ // and hide the relevant UI components.
+ mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
+ mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
+ }
+ }
+
+ @Override
+ public Loader onCreateLoader(int i, Bundle bundle) {
+ return new CursorLoader(this,
+ // Retrieve data rows for the device user's 'profile' contact.
+ Uri.withAppendedPath(ContactsContract.Profile.CONTENT_URI,
+ ContactsContract.Contacts.Data.CONTENT_DIRECTORY), ProfileQuery.PROJECTION,
+
+ // Select only email addresses.
+ ContactsContract.Contacts.Data.MIMETYPE +
+ " = ?", new String[]{ContactsContract.CommonDataKinds.Email
+ .CONTENT_ITEM_TYPE},
+
+ // Show primary email addresses first. Note that there won't be
+ // a primary email address if the user hasn't specified one.
+ ContactsContract.Contacts.Data.IS_PRIMARY + " DESC");
+ }
+
+ @Override
+ public void onLoadFinished(Loader cursorLoader, Cursor cursor) {
+ List emails = new ArrayList<>();
+ cursor.moveToFirst();
+ while (!cursor.isAfterLast()) {
+ emails.add(cursor.getString(ProfileQuery.ADDRESS));
+ cursor.moveToNext();
+ }
+
+ addEmailsToAutoComplete(emails);
+ }
+
+ @Override
+ public void onLoaderReset(Loader cursorLoader) {
+
+ }
+
+ private void addEmailsToAutoComplete(List emailAddressCollection) {
+ //Create adapter to tell the AutoCompleteTextView what to show in its dropdown list.
+ ArrayAdapter adapter =
+ new ArrayAdapter<>(LoginActivity.this,
+ android.R.layout.simple_dropdown_item_1line, emailAddressCollection);
+
+ mEmailView.setAdapter(adapter);
+ }
+
+
+ private interface ProfileQuery {
+ String[] PROJECTION = {
+ ContactsContract.CommonDataKinds.Email.ADDRESS,
+ ContactsContract.CommonDataKinds.Email.IS_PRIMARY,
+ };
+
+ int ADDRESS = 0;
+ int IS_PRIMARY = 1;
+ }
+
+ /**
+ * Represents an asynchronous login/registration task used to authenticate
+ * the user.
+ */
+ public class UserLoginTask extends AsyncTask {
+
+ private final String mEmail;
+ private final String mPassword;
+
+ UserLoginTask(String email, String password) {
+ mEmail = email;
+ mPassword = password;
+ }
+
+ @Override
+ protected Boolean doInBackground(Void... params) {
+ // TODO: attempt authentication against a network service.
+
+ try {
+ // Simulate network access.
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ return false;
+ }
+
+ for (String credential : DUMMY_CREDENTIALS) {
+ String[] pieces = credential.split(":");
+ if (pieces[0].equals(mEmail)) {
+ // Account exists, return true if the password matches.
+ return pieces[1].equals(mPassword);
+ }
+ }
+
+ // TODO: register the new account here.
+ return true;
+ }
+
+ @Override
+ protected void onPostExecute(final Boolean success) {
+ mAuthTask = null;
+ showProgress(false);
+
+ if (success) {
+ finish();
+ } else {
+ mPasswordView.setError(getString(R.string.error_incorrect_password));
+ mPasswordView.requestFocus();
+ }
+ }
+
+ @Override
+ protected void onCancelled() {
+ mAuthTask = null;
+ showProgress(false);
+ }
+ }
+}
+
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/bodyinformation/BodyInformationFragment.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/bodyinformation/BodyInformationFragment.java
index 9cc37d4..30b36c2 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/bodyinformation/BodyInformationFragment.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/bodyinformation/BodyInformationFragment.java
@@ -56,6 +56,8 @@ public class BodyInformationFragment extends BaseFragment {
private ISportStepInterface iSportStepInterface;
+ private ServiceConnection coon;
+
@Override
public int getLayoutResId() {
@@ -94,7 +96,7 @@ public class BodyInformationFragment extends BaseFragment {
//开启计步
Intent stepCounterStart = new Intent(getActivity(), TodayStepService.class);
getActivity().startService(stepCounterStart);
- getActivity().bindService(stepCounterStart, new ServiceConnection() {
+ coon = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
iSportStepInterface = ISportStepInterface.Stub.asInterface(service);
@@ -111,7 +113,8 @@ public class BodyInformationFragment extends BaseFragment {
public void onServiceDisconnected(ComponentName name) {
}
- }, Context.BIND_AUTO_CREATE);
+ };
+ getActivity().bindService(stepCounterStart, coon, Context.BIND_AUTO_CREATE);
}
/**
@@ -172,4 +175,9 @@ public class BodyInformationFragment extends BaseFragment {
ChartDrawer.initSingleLineChart(stepLineChart, stepPointValues, "步数");
}
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ getActivity().unbindService(coon);
+ }
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/customization/CustomizationFragment.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/customization/CustomizationFragment.java
index daebe4e..88d4bf9 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/customization/CustomizationFragment.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/customization/CustomizationFragment.java
@@ -15,6 +15,7 @@ import com.example.ninefourone.nutritionmaster.bean.DailyCard;
import com.example.ninefourone.nutritionmaster.cardconfig.CardConfig;
import com.example.ninefourone.nutritionmaster.cardconfig.CardItemTouchCallBack;
import com.example.ninefourone.nutritionmaster.cardconfig.SwipeCardLayoutManager;
+import com.example.ninefourone.nutritionmaster.utils.CalculateUtils;
import com.example.ninefourone.nutritionmaster.utils.ConstantUtils;
import java.util.ArrayList;
@@ -80,11 +81,20 @@ public class CustomizationFragment extends BaseFragment {
@Override
protected void loadData() {
super.loadData();
- for (int i = 1; i <= 7; i++) {
+ for (int i = CalculateUtils.getWeek(); i <= 7; i++) {
// mDataList.add("周" + ConstantUtils.arab2Chinese(i) + "美食普");
DailyCard dailyCard = new DailyCard(
"周" + ConstantUtils.arab2Chinese(i) + "美食普",
- "这里放描述",
+ ConstantUtils.dailyDescibes[i-1],
+ picList[i - 1]
+ );
+ mDataList.add(dailyCard);
+ }
+ for (int i = 1; i < CalculateUtils.getWeek(); i++) {
+// mDataList.add("周" + ConstantUtils.arab2Chinese(i) + "美食普");
+ DailyCard dailyCard = new DailyCard(
+ "周" + ConstantUtils.arab2Chinese(i) + "美食普",
+ ConstantUtils.dailyDescibes[i-1],
picList[i - 1]
);
mDataList.add(dailyCard);
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/ui/InformationDialog.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/ui/InformationDialog.java
new file mode 100644
index 0000000..6b9cf5e
--- /dev/null
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/ui/InformationDialog.java
@@ -0,0 +1,128 @@
+package com.example.ninefourone.nutritionmaster.ui;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageView;
+
+
+import android.widget.TextView;
+
+import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
+import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
+import com.bigkoo.pickerview.view.OptionsPickerView;
+import com.example.ninefourone.nutritionmaster.R;
+import com.example.ninefourone.nutritionmaster.base.BaseDialog;
+import com.example.ninefourone.nutritionmaster.utils.ConstantUtils;
+
+/**
+ * Created by ScorpioMiku on 2018/10/1.
+ */
+
+public class InformationDialog extends BaseDialog {
+
+
+ private TextView ageTextView;
+ private TextView heightTextView;
+ private TextView weightTextView;
+ private TextView sexTextView;
+
+ private ImageView ageImageView;
+ private ImageView sexImageView;
+ private ImageView heightImageView;
+ private ImageView weightImageView;
+
+ private Button okButton;
+
+ private OptionsPickerView agePicker;
+ private OptionsPickerView weightPicker;
+ private OptionsPickerView heightPicker;
+ private OptionsPickerView sexPicker;
+
+
+ public InformationDialog(@NonNull Context context) {
+ super(context);
+ dialog = create();
+
+
+ View view = View.inflate(context, R.layout.add_information_activity, null);
+ dialog.setView(view);
+
+ ageImageView = view.findViewById(R.id.age_image_view);
+ sexImageView = view.findViewById(R.id.sex_image_view);
+ heightImageView = view.findViewById(R.id.height_image_view);
+ weightImageView = view.findViewById(R.id.weight_image_view);
+
+
+ ageTextView = view.findViewById(R.id.age_text_view);
+ sexTextView = view.findViewById(R.id.sex_text_view);
+ weightTextView = view.findViewById(R.id.weight_text_view);
+ heightTextView = view.findViewById(R.id.height_text_view);
+
+ okButton = view.findViewById(R.id.ok_button);
+
+ agePicker = new OptionsPickerBuilder(context, new OnOptionsSelectListener() {
+ @Override
+ public void onOptionsSelect(int options1, int options2, int options3, View v) {
+ ageTextView.setText(ConstantUtils.ageList.get(options1));
+ }
+ }).build();
+ agePicker.setPicker(ConstantUtils.ageList);
+
+
+ sexPicker = new OptionsPickerBuilder(context, new OnOptionsSelectListener() {
+ @Override
+ public void onOptionsSelect(int options1, int options2, int options3, View v) {
+ sexTextView.setText(ConstantUtils.ageList.get(options1));
+ }
+ }).build();
+ sexPicker.setPicker(ConstantUtils.sexList);
+
+
+ heightPicker = new OptionsPickerBuilder(context, new OnOptionsSelectListener() {
+ @Override
+ public void onOptionsSelect(int options1, int options2, int options3, View v) {
+ heightTextView.setText(ConstantUtils.ageList.get(options1));
+ }
+ }).build();
+ heightPicker.setPicker(ConstantUtils.heightList);
+
+
+ weightPicker = new OptionsPickerBuilder(context, new OnOptionsSelectListener() {
+ @Override
+ public void onOptionsSelect(int options1, int options2, int options3, View v) {
+ weightTextView.setText(ConstantUtils.ageList.get(options1));
+ }
+ }).build();
+ weightPicker.setPicker(ConstantUtils.weightList);
+
+
+ ageImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ agePicker.show();
+ }
+ });
+ sexImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ sexPicker.show();
+ }
+ });
+ heightImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ heightPicker.show();
+ }
+ });
+ weightImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ weightPicker.show();
+ }
+ });
+
+
+ }
+}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/CalculateUtils.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/CalculateUtils.java
index 65f90e8..a17fe70 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/CalculateUtils.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/CalculateUtils.java
@@ -1,5 +1,9 @@
package com.example.ninefourone.nutritionmaster.utils;
+import com.orhanobut.logger.Logger;
+
+import java.util.Calendar;
+
/**
* Created by ScorpioMiku on 2018/8/29.
*/
@@ -14,8 +18,9 @@ public class CalculateUtils {
*/
public static float BMI(float height, float weight) {
if (height > 10) {
- height = height / 100;
+ height = height / 100.0f;
}
+// Logger.d(height+"|"+weight / (height * height));
return weight / (height * height);
}
@@ -56,4 +61,15 @@ public class CalculateUtils {
return "重度肥胖";
}
}
+
+ /**
+ * 获取星期几
+ *
+ * @return
+ */
+ public static int getWeek() {
+ Calendar calendar = Calendar.getInstance();
+ Logger.d( calendar.get(Calendar.DAY_OF_WEEK));
+ return calendar.get(Calendar.DAY_OF_WEEK)-1;
+ }
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/ConstantUtils.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/ConstantUtils.java
index f1bc04c..6a3767d 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/ConstantUtils.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/ConstantUtils.java
@@ -7,6 +7,10 @@ import java.util.ArrayList;
*/
public class ConstantUtils {
+
+ public static String[] dailyDescibes = {"快乐陪周一", "幸运伴周二", "轻松有周三", "温馨携周四",
+ "愉悦同周五", "休闲找周六", "潇洒属周日"};
+
public static String arab2Chinese(int number) {
switch (number) {
case 1:
@@ -36,19 +40,231 @@ public class ConstantUtils {
"舌底经络颜色",
"口腔整体情况",
"整体生活精神状况",
- "性格特点",
- "食物温度偏向",
+ "生活中的小问题",
+ "饮用水温度偏向",
"揭晓结果"
};
public static String[][] answerList = new String[][]{
{"开始吧"},
- {"偏暗红", "偏白", "淡红"},
- {"暗红", "细红", "不明显"},
+ {"深红", "偏白", "淡红"},
+ {"暗紫", "细红", "不明显"},
{"口舌干燥", "口黏苔腻", "还算正常"},
{"沉寂易疲劳", "精力充沛"},
- {"内向", "开朗"},
+ {"多汗无力、易胖", "多愁善感", "都不"},
{"烫的", "冷的", "没有特别喜欢的"},
{"查看"}
};
+
+ public static ArrayList occupationList = new ArrayList<>();
+
+ public static ArrayList ageList = new ArrayList<>();
+
+ public static ArrayList sexList = new ArrayList<>();
+
+ public static ArrayList heightList = new ArrayList<>();
+
+ public static ArrayList weightList = new ArrayList<>();
+
+ static {
+ for (int i = 1; i <= 200; i++) {
+ if (i < 100) {
+ ageList.add(i + "岁");
+ }
+ heightList.add(i + 50 + "cm");
+ if (i < 150) {
+ weightList.add(i + "kg");
+ }
+ }
+ sexList.add("男");
+ sexList.add("女");
+ }
+
+ /**
+ * 全国平均体重 index 0 对应 3岁
+ */
+ public static ArrayList averageBoyHeight = new ArrayList<>();
+
+ public static ArrayList averageGirlHeight = new ArrayList<>();
+
+ static {
+ averageBoyHeight.add(new Float(102.2));
+ averageBoyHeight.add(new Float(107.8));
+ averageBoyHeight.add(new Float(114));
+ averageBoyHeight.add(new Float(119.7));
+ averageBoyHeight.add(new Float(126.6));
+ averageBoyHeight.add(new Float(132));
+ averageBoyHeight.add(new Float(137.2));
+ averageBoyHeight.add(new Float(142.1));
+ averageBoyHeight.add(new Float(148.1));
+ averageBoyHeight.add(new Float(154.5));
+ averageBoyHeight.add(new Float(161.4));
+ averageBoyHeight.add(new Float(166.5));
+ averageBoyHeight.add(new Float(169.8));
+ averageBoyHeight.add(new Float(171.4));
+ averageBoyHeight.add(new Float(172.1));
+ averageBoyHeight.add(new Float(172));
+ averageBoyHeight.add(new Float(172.4)); //index 16 age 19
+
+ averageBoyHeight.add(new Float(171.9));
+ averageBoyHeight.add(new Float(171.6));
+ averageBoyHeight.add(new Float(170.8));
+ averageBoyHeight.add(new Float(169.9));
+ averageBoyHeight.add(new Float(169));
+ averageBoyHeight.add(new Float(168.7));
+ averageBoyHeight.add(new Float(168.3));
+ averageBoyHeight.add(new Float(167.5));
+
+
+ averageGirlHeight.add(new Float(100.9));
+ averageGirlHeight.add(new Float(106.5));
+ averageGirlHeight.add(new Float(112.7));
+ averageGirlHeight.add(new Float(118.1));
+ averageGirlHeight.add(new Float(125.1));
+ averageGirlHeight.add(new Float(130.5));
+ averageGirlHeight.add(new Float(136.3));
+ averageGirlHeight.add(new Float(142.6));
+ averageGirlHeight.add(new Float(149.3));
+ averageGirlHeight.add(new Float(153.7));
+ averageGirlHeight.add(new Float(157));
+ averageGirlHeight.add(new Float(158.7));
+ averageGirlHeight.add(new Float(159.4));
+ averageGirlHeight.add(new Float(159.8));
+ averageGirlHeight.add(new Float(159.9));
+ averageGirlHeight.add(new Float(159.4));
+ averageGirlHeight.add(new Float(160.4));//index 16 age 19
+
+
+ averageGirlHeight.add(new Float(159.9));//index 17 age 24
+ averageGirlHeight.add(new Float(159.6));
+ averageGirlHeight.add(new Float(159.1));
+ averageGirlHeight.add(new Float(158.5));
+ averageGirlHeight.add(new Float(157.8));
+ averageGirlHeight.add(new Float(157.7));
+ averageGirlHeight.add(new Float(157.7));// index 23 age 54
+ averageGirlHeight.add(new Float(156.8)); //index 24 age 59
+
+ }
+
+ /**
+ * 全国平均体重
+ */
+ public static ArrayList averageBoyWeight = new ArrayList<>();
+ public static ArrayList averageGirlWeight = new ArrayList<>();
+
+ static {
+ averageBoyWeight.add(new Float(16.6));
+ averageBoyWeight.add(new Float(18.3));
+ averageBoyWeight.add(new Float(20.6));
+ averageBoyWeight.add(new Float(23));
+ averageBoyWeight.add(new Float(26.6));
+ averageBoyWeight.add(new Float(29.9));
+ averageBoyWeight.add(new Float(33.6));
+ averageBoyWeight.add(new Float(37.2));
+ averageBoyWeight.add(new Float(41.9));
+ averageBoyWeight.add(new Float(16.6));
+ averageBoyWeight.add(new Float(52));
+ averageBoyWeight.add(new Float(56.2));
+ averageBoyWeight.add(new Float(59.5));
+ averageBoyWeight.add(new Float(61.5));
+ averageBoyWeight.add(new Float(63.3));
+ averageBoyWeight.add(new Float(63.5));
+ averageBoyWeight.add(new Float(63.5));
+
+ averageBoyWeight.add(new Float(67.2));
+ averageBoyWeight.add(new Float(70.4));
+ averageBoyWeight.add(new Float(71.4));
+ averageBoyWeight.add(new Float(71.5));
+ averageBoyWeight.add(new Float(71.2));
+ averageBoyWeight.add(new Float(71.2));
+ averageBoyWeight.add(new Float(10.6));
+ averageBoyWeight.add(new Float(69.1));
+
+
+ averageGirlWeight.add(new Float(15.9));
+ averageGirlWeight.add(new Float(17.5));
+ averageGirlWeight.add(new Float(19.6));
+ averageGirlWeight.add(new Float(21.6));
+ averageGirlWeight.add(new Float(24.7));
+ averageGirlWeight.add(new Float(27.6));
+ averageGirlWeight.add(new Float(31.3));
+ averageGirlWeight.add(new Float(35.5));
+ averageGirlWeight.add(new Float(40.6));
+ averageGirlWeight.add(new Float(44.5));
+ averageGirlWeight.add(new Float(18));
+ averageGirlWeight.add(new Float(50.4));
+ averageGirlWeight.add(new Float(51.6));
+ averageGirlWeight.add(new Float(52.7));
+ averageGirlWeight.add(new Float(53));
+ averageGirlWeight.add(new Float(52.6));
+ averageGirlWeight.add(new Float(52.4));
+
+ averageGirlWeight.add(new Float(53.8));
+ averageGirlWeight.add(new Float(55.3));
+ averageGirlWeight.add(new Float(56.8));
+ averageGirlWeight.add(new Float(57.8));
+ averageGirlWeight.add(new Float(59));
+ averageGirlWeight.add(new Float(59.7));
+ averageGirlWeight.add(new Float(60.4));
+ averageGirlWeight.add(new Float(59.6));
+
+ }
+
+
+ public static String[] physiquesImageUrls = {
+ "https://ws1.sinaimg.cn/large/0067fcixly1fvtqro2rrhj30c90eydgu.jpg",
+ "https://ws1.sinaimg.cn/large/0067fcixly1fvtqro060mj30c90go755.jpg",
+ "https://ws1.sinaimg.cn/large/0067fcixly1fvtqrnxrnmj30c90go3zp.jpg",
+ "https://ws1.sinaimg.cn/large/0067fcixly1fvtqwvxzwjj30c90goaav.jpg",
+ "https://ws1.sinaimg.cn/large/0067fcixly1fvtqrnuqb3j30c90goaar.jpg",
+ "https://ws1.sinaimg.cn/large/0067fcixly1fvtqrogotyj30c90goq3u.jpg",
+ "https://ws1.sinaimg.cn/large/0067fcixly1fvtqrodvjij30b70cvdlq.jpg",
+ "https://ws1.sinaimg.cn/large/0067fcixly1fvtqro7ij0j30970dpafy.jpg"
+ };
+
+ public static String[] physiquesExpressions = {
+ "平素面色晦暗,皮肤偏暗或色素沉着,容易出现瘀斑,易患疼痛,口唇暗淡或紫,舌质暗有点、片状瘀斑,舌下静脉曲张。" +
+ "眼眶暗黑,鼻部暗滞,发易脱落,皮肤发干,或有出血倾向、吐血,女性多见痛经、闭经、或经血中多有血块,或经色紫黑有块。",
+ "手足心热,平常容易口燥咽干,鼻微干,口渴喜冷饮,大便干燥,面色潮红、有烘热感,眼睛干涩视物昏花,唇红微干," +
+ "皮肤偏干、易生皱纹,眩晕耳鸣,睡眠差,小便短涩。",
+ "四季怕冷,手足不温,喜热饮食,精神不振,睡眠偏多。面色柔白,目周晦暗,口唇色淡,毛发易落,大便溏稀,小便清长。",
+ "面部皮肤油脂较多,多汗且黏,胸闷,痰多,面色淡黄而暗,眼胞微浮,容易困倦,口黏腻或甜,身重不爽,喜食肥甘甜黏,大便正常或不实,小便不多或微混,平素舌体胖大。",
+ "平素面垢油光,容易口苦口干,身重困倦,易生痤疮,体偏胖或苍瘦,心烦懈怠,眼目红赤,大便燥结或黏滞,小便短赤,男易阴囊潮湿,女易带下增多等。",
+ "性格内向不稳定,忧郁脆弱,敏感多疑,对精神刺激适应能力较差,平常忧郁面貌,神情多烦闷不乐。胸胁胀满,或走窜疼痛,多伴善太息,或嗳气呃逆,或咽间有异物感,或乳房胀痛,睡眠较差,食欲减退,惊悸怔忡,健忘,痰多,大便多干,小便正常。",
+ "平常说话语音低怯,气短懒言,容易疲乏,精神不振,易出汗。面色偏黄或晄白,目光少神,唇色少华,毛发不华,容易头晕,记忆力减退,大便不成形,或便后仍觉未尽,小便正常或偏多。",
+ "面色、肤色润泽,头发稠密有光泽,目光有神,鼻色明润,嗅觉、味觉良好,唇色红润,不易疲劳,精力充沛,耐受寒热,睡眠良好,食欲好,二便正常。"
+ };
+
+ public static String[] physiquesCharacteristics = {
+ "瘀血质的人,血行不畅,临床常呈现肤色晦暗、色素沉着、瘀斑、性格抑郁、健忘,舌质紫黯或有瘀点、舌下络脉紫黯或增粗,脉涩。易患痛证、血证、症瘕等。",
+ "阴虚质的人,阴液亏少,耐冬不耐夏,临床常呈现口燥咽干、手足心热、喜冷饮、大便干燥,舌红少津,脉细数。一般体形偏瘦,易患虚劳、遗精、失眠等。",
+ "阳虚质的人,阳气不足,临床常呈现畏寒怕冷、手足不暖、喜热饮食、精神不振,舌淡胖嫩,脉迟沉。一般性格内向,易患痰饮、肿胀、泄泻等。",
+ "痰湿质的人,痰湿凝聚,临床常以形体肥胖、多汗无力、胸闷痰多、腹部肥满、口黏苔腻等痰湿表现为主要特征。",
+ "湿热质的人,湿热内蕴,临床常呈现面垢油光、口苦、心烦急躁、口苦口干、身重困倦、大便粘滞不畅或燥结、小便短黄、男性易阴囊潮湿、女性带下增多,易生痤疮,舌质偏红、苔黄腻,脉滑数。",
+ "气郁质的人,气机郁滞,临床常呈现精神抑郁、忧虑脆弱、多愁善感、易患脏燥、梅核气、百合病等病症。舌淡红、苔薄白,脉弦。",
+ "气虚质的人,元气不足,临床常呈现疲乏气短、自汗懒言、语音低弱、精神不振、肌肉松软不实,舌淡红、边有齿痕,脉虚。易患感冒、内脏下垂、病后康复缓慢等。",
+ "平和质的人,阴阳气血调和,体态适中、面色红润、精力充沛、体形匀称健壮、耐受寒热、睡眠良好、患病较少,对自然环境和社会环境适应能力较强。"
+ };
+
+ public static String[] physiquesMentalitys = {
+ "性情急躁,心情易烦,健忘。",
+ "性情急躁,外向好动,活泼。",
+ "性格多沉静、内向。",
+ "性格偏温和,稳重,恭谦,豁达,多善于忍耐。",
+ "性情多急躁易怒。",
+ "性格内向不稳定,忧郁脆弱,敏感多疑。",
+ "情绪不稳定,胆小,不喜欢冒险。",
+ "性格随和开朗。"
+ };
+ public static String[] physiquesMatters = {
+ "瘀血质气机失调,血行不畅,应慎食雪糕、冰淇淋、冰冻饮料等寒凉之品,以免影响气血运行。保持心情舒畅,是淤血质调理的重要环节。",
+ "阴虚质体内阴液不足,药膳应慎食辛辣刺激、煎炒爆炸以及羊肉、狗肉等温热之物,以免耗伤阴液。",
+ "阳虚质阳气亏虚,药膳应忌生冷寒凉,即使盛夏,也不主张多吃诸如西瓜、梨、苦瓜等寒凉生冷之物,以免损伤阳气。",
+ "痰湿质痰湿偏盛,药膳应慎食肥甘油腻、厚味滋补之物,以免助湿生痰。",
+ "湿热质体内湿热偏盛,药膳应慎食牛肉、狗肉、鹿肉、辣椒、姜、葱及肥甘厚味之物,以免助湿生热。",
+ "气郁质气机不畅,心情抑郁,,应慎食雪糕、冰淇淋、冰冻饮料等寒凉之品,以免影响气血运行。同淤血质一样,保持心情舒畅,也是气郁质调理的重要环节。",
+ "气虚质中气不足,脾胃消化功能较弱,药膳应忌过于粘腻、寒凉或难以消化之物,以免食滞难化,影响脾胃功能。",
+ "平和质人阴阳气血平衡,药膳调理不可偏补、贪补,以保持人体阴阳平衡状态最为紧要。所谓“不伤不扰,顺其自然”。"
+ };
+
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/WebUtils.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/WebUtils.java
index ab6201c..1ba9299 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/WebUtils.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/WebUtils.java
@@ -3,6 +3,10 @@ package com.example.ninefourone.nutritionmaster.utils;
import com.google.gson.Gson;
import com.sun.istack.internal.Nullable;
+import com.example.ninefourone.nutritionmaster.bean.Occupation;
+import com.google.gson.Gson;
+import com.orhanobut.logger.Logger;
+
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.ArrayList;
@@ -148,6 +152,12 @@ public class WebUtil {
mClient.newCall(request).enqueue(callback);
}
+ public static void getAllOccupations(Callback callback) {
+ OkHttpClient mClient = new OkHttpClient();
+ Request request = new Request.Builder().url("http://120.77.182.38/occupation/").build();
+ mClient.newCall(request).enqueue(callback);
+ }
+
/**
* 获取体质需要的食材
* {
diff --git a/app/src/main/res/drawable/ic_defualt_avatar.xml b/app/src/main/res/drawable/ic_defualt_avatar.xml
new file mode 100644
index 0000000..4bb1d4e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_defualt_avatar.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_dialog_age.xml b/app/src/main/res/drawable/ic_dialog_age.xml
new file mode 100644
index 0000000..a3f5f27
--- /dev/null
+++ b/app/src/main/res/drawable/ic_dialog_age.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_dialog_height.xml b/app/src/main/res/drawable/ic_dialog_height.xml
new file mode 100644
index 0000000..9835d8e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_dialog_height.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_dialog_sex.xml b/app/src/main/res/drawable/ic_dialog_sex.xml
new file mode 100644
index 0000000..ab68bd5
--- /dev/null
+++ b/app/src/main/res/drawable/ic_dialog_sex.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_dialog_weight.xml b/app/src/main/res/drawable/ic_dialog_weight.xml
new file mode 100644
index 0000000..2b938ec
--- /dev/null
+++ b/app/src/main/res/drawable/ic_dialog_weight.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_occupation.xml b/app/src/main/res/drawable/ic_occupation.xml
new file mode 100644
index 0000000..4319ce9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_occupation.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_add.xml b/app/src/main/res/layout/activity_add.xml
index 14ccad5..17d5182 100644
--- a/app/src/main/res/layout/activity_add.xml
+++ b/app/src/main/res/layout/activity_add.xml
@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#b0ce93"
- tools:context="com.example.ninefourone.nutritionmaster.modules.addinformation.AddActivity">
+ tools:context="com.example.ninefourone.nutritionmaster.modules.addinformation.AddPhysiqueActivity">
+ app:cardCornerRadius="20dp"
+ app:cardElevation="0dp">
@@ -67,140 +71,153 @@
-
+ android:layout_height="match_parent">
-
-
+ android:orientation="vertical">
-
-
+
+
+
+
+
+
+
+ android:orientation="vertical">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/app/src/main/res/layout/activity_add_information.xml b/app/src/main/res/layout/activity_add_information.xml
new file mode 100644
index 0000000..a37234e
--- /dev/null
+++ b/app/src/main/res/layout/activity_add_information.xml
@@ -0,0 +1,9 @@
+
+
+
+
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
new file mode 100644
index 0000000..068a197
--- /dev/null
+++ b/app/src/main/res/layout/activity_login.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 7ade751..989267d 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -59,6 +59,7 @@
android:src="@drawable/test_avatar" />
-
+ android:layout_height="40dp"
+ android:layout_marginTop="10dp"
+ android:gravity="center"
+ android:orientation="vertical">
-
+
+
+
+
+
@@ -179,6 +193,8 @@
android:layout_marginRight="25dp"
android:layout_marginTop="15dp"
android:src="@drawable/ic_data_add" />
+
+
@@ -192,340 +208,355 @@
android:layout_height="wrap_content">
-
+ android:layout_height="wrap_content">
-
+ android:layout_height="200dp"
+ android:gravity="center"
+ android:orientation="vertical">
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+ android:orientation="vertical">
-
-
-
-
-
-
-
-
-
-
+ android:src="@drawable/ic_score" />
-
+
-
+
-
+
-
+
-
-
+
-
-
+
+
-
+
-
-
-
-
-
+ android:orientation="horizontal">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="0.5" />
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:orientation="horizontal">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="0.5" />
+
+
+
+
+
+
+ android:orientation="horizontal">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="0.5" />
-
-
+
-
+
-
-
-
+
+
diff --git a/app/src/main/res/layout/add_information_activity.xml b/app/src/main/res/layout/add_information_activity.xml
new file mode 100644
index 0000000..49565ba
--- /dev/null
+++ b/app/src/main/res/layout/add_information_activity.xml
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/add_item.xml b/app/src/main/res/layout/add_item.xml
index 962700c..7073a8e 100644
--- a/app/src/main/res/layout/add_item.xml
+++ b/app/src/main/res/layout/add_item.xml
@@ -35,6 +35,7 @@
android:id="@+id/choose_first"
android:layout_width="150dp"
android:layout_height="50dp"
+ android:enabled="false"
android:text="测试"
android:textSize="13sp"
android:visibility="gone">
@@ -46,6 +47,7 @@
android:layout_width="150dp"
android:layout_height="50dp"
android:layout_marginTop="20dp"
+ android:enabled="false"
android:text="测试"
android:textSize="13sp"
android:visibility="gone">
@@ -57,6 +59,7 @@
android:layout_width="150dp"
android:layout_height="50dp"
android:layout_marginTop="20dp"
+ android:enabled="false"
android:text="测试"
android:textSize="13sp"
android:visibility="gone">
diff --git a/app/src/main/res/layout/cameras_layout.xml b/app/src/main/res/layout/cameras_layout.xml
index 8fd2bc9..13a1e8d 100644
--- a/app/src/main/res/layout/cameras_layout.xml
+++ b/app/src/main/res/layout/cameras_layout.xml
@@ -16,7 +16,7 @@
+ android:layout_weight="14">
+ android:layout_weight="2"
+ android:alpha="0.2"
+ android:background="#8a515050">
NutritionMaster
当前值
+ 全国均值
标准值
M1080.3,453.7c-77.2,88.2 -214.6,234.4 -214.6,234.4s22,160.2 35.3,269.7c5.9,55.9 -37.5,80.1 -86,58.1 -92.6,-43.4 -233.7,-111 -265.3,-126.4 -32.3,14.7 -174.2,81.6 -267.5,124.9 -49.2,21.3 -92.6,-2.2 -87.5,-58.1 12.5,-109.5 35.3,-269 35.3,-269S91.1,541.9 13.2,453.7c-27.9,-32.3 -9.6,-77.9 44.8,-86 111.7,-19.8 284.4,-51.4 284.4,-51.4s94.8,-163.1 154.3,-263.1C529.8,-7.8 552.6,-0.4 556.3,1c10.3,2.9 26.5,15.4 47,52.2 58.8,99.9 152.1,263.1 152.1,263.1s170.5,31.6 280.7,51.4c53.6,8.1 71.3,54.4 44.1,86z
食材识别
菜品识别
+ 登录
+
+
+ Email
+ Password (optional)
+ Sign in or register
+ Sign in
+ This email address is invalid
+ This password is too short
+ This password is incorrect
+ This field is required
+ "Contacts permissions are needed for providing email
+ completions."
+
diff --git a/build.gradle b/build.gradle
index 8db53cb..ba4f2f1 100644
--- a/build.gradle
+++ b/build.gradle
@@ -25,6 +25,7 @@ allprojects {
google()
jcenter()
maven { url 'https://jitpack.io' }
+ maven { url 'https://bintray.com/rameshbhupathi/maven' }
}
}
diff --git a/datas/11111.csv b/datas/11111.csv
new file mode 100644
index 0000000..e2f391a
--- /dev/null
+++ b/datas/11111.csv
@@ -0,0 +1,44 @@
+occupation,classification,,,,,
+ʦ,"εʳ,ȴʳ,Dzʳ,ȥʳ,ʳ,ʳ",,,,,
+,"ʳ,Dzʳ,ʳ,ʧʳ",,,,,
+Ա,"ʲ,ݲ,ӻ˥ʳ,Ѫ˫ʳ,ڷʳ,ʳ,ʳ",,,,,
+ʦ,"»ҵȺʳ,εʳ",,,,,
+ҽ,"Dzʳ,ʳ,ʳ",,,,,
+ʿ,"ӴԱʳ,Dzʳ,ʳ,ʳ,ʳ",,,,,
+˾,"̴ʳ,Ŀʳ,ؽʳ",,,,,
+,"ʳ,˶Աʳ,Ƣθʳ,ʳ",,,,,
+ʦ,"Dzʳ,ʳ,ʧʳ,Ƣθʳ",,,,,
+,"ʳ,ʳ,Ѫ˫ʳ,Dzʳ,ʧʳ,ͷʹʳ",,,,,
+,"Dzʳ,Ѫѹʳ,˥ʳ,ļʳ,ڷʳ,ͷʹʳ",,,,,
+,"ʳ,Ӫʳ,׳ʳ,ʳ,Ѫ˫ʳ",,,,,
+,"ӴѧԱʳ,Ƚⶾʳ,Ѫ˫ʳ,ʳ,ʳ",,,,,
+,"Ƣʳ,εʳ,ʳ,Ѫ˫ʳ,ʳ",,,,,
+ʦ,"Ӫʳ,εʳ,ʳ,ڷʳ,Ƣθ",,,,,
+Ա,"˥ʳ,Ѫѹʳ,Ŀʳ,Ѫʳ,Ѫ˫ʳ",,,,,
+Ա,"Ƣʳ,Ѫѹʳ,Ѫ˫ʳ,εʳ,ͷʹʳ",,,,,
+˶Ա,"вʳ,Ƣθʳ,ʳ,ؽʳ,˶Աʳ,ʳ",,,,,
+,"»ҵȺʳ,˥ʳ,Ŀʳ,ʧʳ,ĵʳ",,,,,
+ս,"ʳ,ݲ,ȴʳ,Ѫ˫ʳ,ʳ",,,,,
+ʦ,"Ŀʳ,ʳ,Ѫʳ,Dzʳ,ձ",,,,,
+,"ձ,Ƣθʳ,˥ʳ,Ŀʳ,Dzʳ",,,,,
+,"Dzʳ,ʳ,ʧʳ,ĵʳ,ͷʹʳ,ʳ",,,,,
+ǰ̨,"ҳ,׳ʳ,ݲ,ȴʳ,ĵʳ",,,,,
+ѧ,"ʳ,Ƣθʳ,Ŀʳ,ʳ",,,,,
+,"ʳ,εʳ,Ӳʳ,ʳ,ζ",,,,,
+,"Ŀʳ,Dzʳ,Ʒʳ,ζ,ؽʳ",,,,,
+Ա,"˥ʳ,Dzʳ,ʳ,ڷʳ,ʧʳ",,,,,
+Ա,"ʳ,ʳ,Ŀʳ,ʳ,ʳ,",,,,,
+,"Ŀʳ,ʳ,˥ʳ,Dzʳ,ʳ",,,,,
+ģ,"ݲ,ʲ,ӻ˥ʳ,ʳ,ڷʳ",,,,,
+,"Dzʳ,ʳ,ʳ,Ѫѹʳ,ʳ",,,,,
+,"ʳ,ʳ,ʳ,ʲ,ȥʳ,ʳ",,,,,
+÷,"׳ʳ,Ŀʳ,ʳ,ؽʳ,Ƣθʳ",,,,,
+Ա,"Ƥʳ,׳ʳ,ʳ,ؽʳ,ʳ",,,,,
+Ա,"Ƥʳ,ʳ,θʳ,ʳ,׳ʳ",,,,,
+,"ʳ,ؽʳ,׳ʳ,Ŀʳ,ʳ",,,,,
+,"׳ʳ,Ƥʳ,Ŀʳ,ʲ,ǰټʳ",,,,,
+ʦ,"ؽʳ,εʳ,׳ʳ,֧ʳ,Ƥʳ",,,,,
+ʦ,"ؽʳ,Ŀʳ,Ƥʳ,ʳ,εʳ",,,,,
+ķ,"ؽʳ,׳ʳ,Ŀʳ,ðʳ,Ѫ˫ʳ",,,,,
+ʦ,"ӴԱʳ,ʳ,Ŀʳ,ؽʳ,׳ʳ",,,,,
+Ա,"Ŀʳ,ʳ,ðʳ,Ƥʳ,εʳ",,,,,
diff --git a/datas/menu_classification (1).csv b/datas/menu_classification (1).csv
new file mode 100644
index 0000000..1ad7a59
--- /dev/null
+++ b/datas/menu_classification (1).csv
@@ -0,0 +1,156 @@
+,classification
+0,川菜
+1,老人食谱
+2,不孕不育食谱
+3,肾调养食谱
+4,家常菜谱
+5,青少年食谱
+6,补阳食谱
+7,阳痿早泄食谱
+8,低温环境作业人群食谱
+9,糖尿病食谱
+10,脾调养食谱
+11,结核病食谱
+12,私家菜
+13,骨质疏松食谱
+14,营养不良食谱
+15,便秘食谱
+16,壮腰健肾食谱
+17,接触化学毒素人员食谱
+18,高血压食谱
+19,健脾开胃食谱
+20,京菜
+21,学龄期儿童食谱
+22,肝调养食谱
+23,神经衰弱食谱
+24,肾炎食谱
+25,月经不调食谱
+26,滋阴食谱
+27,小儿遗尿食谱
+28,清热解毒食谱
+29,明目食谱
+30,补血食谱
+31,补虚养身食谱
+32,夜尿多食谱
+33,自汗盗汗食谱
+34,补气食谱
+35,中风食谱
+36,高脂血症食谱
+37,动脉硬化食谱
+38,甲状腺疾病食谱
+39,冠心病食谱
+40,防癌抗癌食谱
+41,沪菜
+42,美容菜谱
+43,咳喘食谱
+44,减肥菜谱
+45,精品主食
+46,贫血食谱
+47,心悸食谱
+48,活血化瘀食谱
+49,孕妇菜谱
+50,肝炎食谱
+51,胃调养食谱
+52,延缓衰老食谱
+53,气血双补食谱
+54,防暑食谱
+55,乳母食谱
+56,咽炎食谱
+57,益智补脑食谱
+58,健忘食谱
+59,乌发食谱
+60,清热去火食谱
+61,理气调理食谱
+62,通乳食谱
+63,更年期食谱
+64,耳鸣食谱
+65,产后调理食谱
+66,鲁菜
+67,清真菜
+68,水肿食谱
+69,术后食谱
+70,湖北菜
+71,甜品/点心
+72,腹泻调理食谱
+73,豫菜
+74,东北菜
+75,消化不良食谱
+76,失眠食谱
+77,肺调养食谱
+78,浙菜
+79,增肥食谱
+80,湘菜
+81,卤酱菜
+82,止血调理食谱
+83,冻疮食谱
+84,利尿食谱
+85,药膳偏方
+86,心调养食谱
+87,粤菜
+88,肢寒畏冷食谱
+89,幼儿菜谱
+90,痔疮食谱
+91,痛经食谱
+92,西北菜
+93,素斋菜
+94,胃炎食谱
+95,尿路结石食谱
+96,微波菜谱
+97,肠炎食谱
+98,哮喘食谱
+99,头痛食谱
+100,祛痰食谱
+101,痛风食谱
+102,脚气食谱
+103,婴儿食谱
+104,年夜饭
+105,口腔溃疡食谱
+106,丰胸食谱
+107,山西菜
+108,江西菜
+109,学龄前儿童食谱
+110,关节炎食谱
+111,苏菜
+112,子宫脱垂食谱
+113,祛痱食谱
+114,感冒食谱
+115,胆石症食谱
+116,痢疾食谱
+117,肝硬化食谱
+118,呕吐调理食谱
+119,前列腺疾病食谱
+120,云贵菜
+121,解酒食谱
+122,高温环境作业人群食谱
+123,消化性溃疡食谱
+124,腮腺炎食谱
+125,小儿营养不良食谱
+126,保胎食谱
+127,其他国家
+128,闽菜
+129,癫痫食谱
+130,鼻炎食谱
+131,美味粥汤
+132,跌打骨折食谱
+133,运动员食谱
+134,皮肤病食谱
+135,围孕期食谱
+136,产妇菜谱
+137,时尚饮品
+138,清爽凉菜
+139,美味糕点
+140,韩国料理
+141,意大利餐
+142,麻疹食谱
+143,接触电离辐射人员食谱
+144,支气管炎食谱
+145,日本料理
+146,克山病食谱
+147,肺气肿食谱
+148,港台菜
+149,其他菜系
+150,骨质增生食谱
+151,疟疾食谱
+152,徽菜
+153,火锅食谱
+154,法国菜谱
diff --git a/datas/menu_classification.csv b/datas/menu_classification.csv
new file mode 100644
index 0000000..981f992
--- /dev/null
+++ b/datas/menu_classification.csv
@@ -0,0 +1,156 @@
+,classification
+0,
+1,ʳ
+2,вʳ
+3,ʳ
+4,ҳ
+5,ʳ
+6,ʳ
+7,йʳ
+8,»ҵȺʳ
+9,ʳ
+10,Ƣʳ
+11,˲ʳ
+12,˽Ҳ
+13,ʳ
+14,Ӫʳ
+15,ʳ
+16,׳ʳ
+17,ӴѧԱʳ
+18,Ѫѹʳ
+19,Ƣθʳ
+20,
+21,ѧڶͯʳ
+22,εʳ
+23,˥ʳ
+24,ʳ
+25,¾ʳ
+26,ʳ
+27,Сʳ
+28,Ƚⶾʳ
+29,Ŀʳ
+30,Ѫʳ
+31,ʳ
+32,ҹʳ
+33,Ժʳ
+34,ʳ
+35,зʳ
+36,֬Ѫ֢ʳ
+37,Ӳʳ
+38,״ټʳ
+39,IJʳ
+40,ʳ
+41,
+42,ݲ
+43,ȴʳ
+44,ʲ
+45,Ʒʳ
+46,ƶѪʳ
+47,ļʳ
+48,Ѫʳ
+49,и
+50,ʳ
+51,θʳ
+52,ӻ˥ʳ
+53,Ѫ˫ʳ
+54,ʳ
+55,ĸʳ
+56,ʳ
+57,Dzʳ
+58,ʳ
+59,ڷʳ
+60,ȥʳ
+61,ʳ
+62,ͨʳ
+63,ʳ
+64,ʳ
+65,ʳ
+66,³
+67,
+68,ˮʳ
+69,ʳ
+70,
+71,Ʒ/
+72,кʳ
+73,ԥ
+74,
+75,ʳ
+76,ʧʳ
+77,εʳ
+78,
+79,ʳ
+80,
+81,±
+82,ֹѪʳ
+83,ʳ
+84,ʳ
+85,ҩƫ
+86,ĵʳ
+87,
+88,֫ηʳ
+89,
+90,̴ʳ
+91,ʹʳ
+92,
+93,ի
+94,θʳ
+95,·ʯʳ
+96,
+97,ʳ
+98,ʳ
+99,ͷʹʳ
+100,̵ʳ
+101,ʹʳ
+102,ʳ
+103,Ӥʳ
+104,ҹ
+105,ǻʳ
+106,ʳ
+107,ɽ
+108,
+109,ѧǰͯʳ
+110,ؽʳ
+111,ղ
+112,ӹѴʳ
+113,ʳ
+114,ðʳ
+115,ʯ֢ʳ
+116,ʳ
+117,Ӳʳ
+118,ݵʳ
+119,ǰټʳ
+120,ƹ
+121,ʳ
+122,»ҵȺʳ
+123,ʳ
+124,ʳ
+125,СӪʳ
+126,̥ʳ
+127,
+128,
+129,ʳ
+130,ʳ
+131,ζ
+132,ʳ
+133,˶Աʳ
+134,Ƥʳ
+135,Χʳ
+136,
+137,ʱƷ
+138,ˬ
+139,ζ
+140,
+141,
+142,ʳ
+143,ӴԱʳ
+144,֧ʳ
+145,ձ
+146,ɽʳ
+147,ʳ
+148,̨
+149,ϵ
+150,ʳ
+151,űʳ
+152,ղ
+153,ʳ
+154,
diff --git a/datas/occupation_classification.csv b/datas/occupation_classification.csv
new file mode 100644
index 0000000..7672f80
Binary files /dev/null and b/datas/occupation_classification.csv differ
diff --git a/datas/physique (1).xlsx b/datas/physique (1).xlsx
new file mode 100644
index 0000000..bbd814a
Binary files /dev/null and b/datas/physique (1).xlsx differ
diff --git a/datas/元素效果.txt b/datas/元素效果.txt
new file mode 100644
index 0000000..6db75bd
--- /dev/null
+++ b/datas/元素效果.txt
@@ -0,0 +1,44 @@
+
+6ά A ɳ
+
+7ά B1 ˮסľ
+
+8ά B2 ĤסڽסƤס۾η
+
+ b6:
+
+13ά C Ѫɡ˿ڸԭ
+
+15ά E ѪܽԤֹ֢ϸƲеá
+
+-ܲءƤͷάʹٽɳ
+
+̴ ϳɼ
+
+22þ Mg
+Ϊɹ֮Ҫɷ
+ȱΣȱþʹܵ
+
+19 Ca ΪɹݵҪɷ.
+
+26 FeѪҺҪɷݣѪ쵰סԺͯɳֿdzҪֹƶѪ ȱΣƶѪƣ롢ֿ͡ȡ
+
+
+30п Zn ƤϸǿֳΪ׳ʣǰٵĹܡֳٵķа
+
+27ͭ CuȱΣӰĵ֯ƶѪ
+
+29 Mn ȱΣӰγɡԺɶɵĺϳɼԹ˥ˡ
+
+21 K ȱΣѪѹƣ͡ȿȡƼȳʳȱ
+
+20 P ȱΣؽס֡ƣ͡ʳ
+
+23 Na
+Ѫѹ
+ȱΣȱƻ»˯Ѫǡļµ֢״Ѫѹߡ
+
+ʱ䣡ڣ
+
+ҪԪأнIJ
+
\ No newline at end of file
diff --git a/datas/病).csv b/datas/病).csv
new file mode 100644
index 0000000..37c614c
--- /dev/null
+++ b/datas/病).csv
@@ -0,0 +1,35 @@
+,,̼ˮˣ,֬ˣ,ʣˣ,άأˣ,άAˣ,άB1ˣأ,άB2ˣ˻أ,άB6ˣ,άCˣ,άEˣ,ܲأˣ,̴ˣ,þˣ,ƣˣ,,п,ͭ,,,,,
+ʳ,1.1,0,0,0,15,0,0,0,0,100,0,0,0,0,0,0,0,1,0,1000,500,1000,0
+ʳ,1.1,0,0,0,0,500,0,0,1500,0,0,2000,100,0,700,7,7,0,2,0,500,0,0
+ʳ,1.1,0,0,0,0,0,0,0,0,0,10,1500,100,0,0,0,10,0,2,0,0,0,0
+ʳ,1.1,-1,0,0,15,0,0,0,1500,0,0,0,0,0,0,0,0,0,0,0,0,500,0
+ʳ,1.1,0,0,0,0,0,0,0,0,100,0,1500,0,100,1000,5,0,2,2,0,500,0,0
+Ӫʳ,1.1,0,0,0,0,500,0,0,1500,0,5,2000,100,0,500,5,10,0,2,0,500,0,0
+ʳ,1.1,0,0,0,15,0,0,0,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+׳ʳ,1.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,1,0,0,0,0
+Ѫѹʳ,1.1,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,1000,0,700,0
+Ƣθʳ,1.1,0,0,0,10,0,0,0,1500,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+ѧڶͯʳ,1.1,0,0,0,0,500,0,0,1000,50,0,2000,100,50,1000,0,10,0,2,0,400,0,0
+˥ʳ,1.1,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0,0,0,0,1000,600,700,0
+¾ʳ,1.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0
+Ƚⶾʳ,1.1,0,0,0,10,0,0,500,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0
+֬Ѫ֢ʳ,1.1,0,0,0,10,0,0,0,0,0,3,0,0,0,0,0,0,0,0,1000,0,0,0
+ʳ,1.1,0,0,0,0,0,0,0,0,0,10,1000,0,0,0,0,5,0,0,0,0,0,0
+ȴʳ,1.1,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+ƶѪʳ,1.1,0,0,0,0,0,0,0,0,0,3,0,0,0,0,10,0,2,0,0,0,0,0
+Ѫʳ,1.1,0,0,0,15,0,500,0,0,50,3,0,0,0,0,7,0,1,0,0,0,0,0
+и,1.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+֢ʳ,1.1,0,0,0,0,0,200,700,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+θʳ,1.1,0,0,0,0,0,0,0,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+ʳ,1.1,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1000,0,0,0
+ʳ,1.1,0,0,0,0,0,0,0,0,0,0,500,0,0,0,0,0,0,0,0,0,0,0
+ڷʳ,1.1,0,0,0,0,0,0,0,0,0,0,1000,0,0,0,0,0,0,0,0,0,0,0.05
+ʳ,1.1,0,0,0,0,300,0,0,0,20,0,0,0,0,0,0,5,0,0,0,0,0,0
+ˮʳ,1.1,0,0,0,0,0,700,450,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+ʳ,1.1,0,0,0,0,200,400,400,0,50,0,700,0,50,500,0,5,1,0,0,400,0,0
+ʧʳ,1.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+ǻʳ,1.1,0,0,0,0,0,0,500,0,50,0,0,0,0,0,0,6,0,0,0,0,0,0
+ðʳ,1.1,0,0,0,0,0,0,0,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+ǰټʳ,1.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,1,0,0,0,0
+ʳ,1.1,0,0,0,0,0,0,0,1000,0,0,0,0,200,0,0,3,0,0,0,0,0,0
+ʲ,1.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,0,0
diff --git a/datas/职业 (bmi分类).xlsx b/datas/职业 (bmi分类).xlsx
new file mode 100644
index 0000000..bdd1d25
Binary files /dev/null and b/datas/职业 (bmi分类).xlsx differ
diff --git a/datas/职业.xlsx b/datas/职业.xlsx
new file mode 100644
index 0000000..84aac59
Binary files /dev/null and b/datas/职业.xlsx differ
diff --git a/datas/营养.txt b/datas/营养.txt
new file mode 100644
index 0000000..166a8ac
--- /dev/null
+++ b/datas/营养.txt
@@ -0,0 +1,3 @@
+֬:ÿ֬ȡ˳ 25~30%Ůȡ 55~65 ˣÿղ˳ 90 ˡ
+ʳάÿ 20~30 ˡÿ100ȡ10 ˵ʳάΪӦӷ
+ഺڵ 25 ꣬ÿӦȡ 800 ˣŮΪ700ˣ 25 ϣÿȡӦ 600 ˡиŮԣÿʽΪ 1000 ˡΪɹݵҪɷ.
\ No newline at end of file
diff --git a/datas/营养标准.xlsx b/datas/营养标准.xlsx
new file mode 100644
index 0000000..dfc8cb5
Binary files /dev/null and b/datas/营养标准.xlsx differ