This commit is contained in:
zhaolizhi
2018-10-02 21:03:36 +08:00
51 changed files with 2952 additions and 642 deletions

View File

@@ -234,6 +234,6 @@
* POST新建用户信息`params`示例
* 1♂ 0♀
* `occupation_name`,`physical_name`的值必须和数据库对应
* `occupation_name`,`physique`的值必须和数据库对应
![](http://ww1.sinaimg.cn/large/0077h8xtly1fvjbfh6vm1j30r70eh3zj.jpg)

View File

@@ -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'

View File

@@ -24,6 +24,11 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<application
android:name=".NutritionMaster"
android:allowBackup="true"
@@ -46,10 +51,14 @@
android:enabled="true"
android:exported="true" />
<activity android:name=".modules.addinformation.AddActivity" />
<activity android:name=".modules.addinformation.AddPhysiqueActivity" />
<activity android:name=".modules.viewpagerfragments.customization.CustomizationActivity" />
<activity android:name=".modules.information.InformationActivity" />
<activity android:name=".modules.RecipeActivity.RecipeActivity"></activity>
<activity android:name=".modules.RecipeActivity.RecipeActivity" />
<activity
android:name=".LoginActivity"
android:label="@string/title_activity_login" />
<activity android:name=".modules.addinformation.AddInformationActivity"></activity>
</application>
</manifest>

View File

@@ -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());
}
}
});
}
}

View File

@@ -39,7 +39,7 @@ public class CardAdapter extends RecyclerView.Adapter<CardHolder> {
@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<CardHolder> {
* 右划
*/
public void swipe2Right() {
Logger.d("右划");
// Logger.d("右划");
}
/**
* 左划
*/
public void swipe2left() {
Logger.d("左划");
// Logger.d("左划");
}
}

View File

@@ -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);
}
});
}

View File

@@ -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() {
}
}

View File

@@ -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();
}
}

View File

@@ -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());
}
}

View File

@@ -1,5 +1,7 @@
package com.example.ninefourone.nutritionmaster.bean;
import java.util.List;
public class FoodMaterial {
/**

View File

@@ -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() {

View File

@@ -14,14 +14,6 @@ public class Physique {
private ElementsBean elements;
private List<String> 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;
}
}
}

View File

@@ -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;
}

View File

@@ -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();

View File

@@ -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);
}
}
}

View File

@@ -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();
}
}

View File

@@ -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) {
}
}

View File

@@ -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());
}
}

View File

@@ -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<Cursor> {
/**
* 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<Cursor> 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<Cursor> cursorLoader, Cursor cursor) {
List<String> emails = new ArrayList<>();
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
emails.add(cursor.getString(ProfileQuery.ADDRESS));
cursor.moveToNext();
}
addEmailsToAutoComplete(emails);
}
@Override
public void onLoaderReset(Loader<Cursor> cursorLoader) {
}
private void addEmailsToAutoComplete(List<String> emailAddressCollection) {
//Create adapter to tell the AutoCompleteTextView what to show in its dropdown list.
ArrayAdapter<String> 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<Void, Void, Boolean> {
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);
}
}
}

View File

@@ -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);
}
}

View File

@@ -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);

View File

@@ -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();
}
});
}
}

View File

@@ -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;
}
}

View File

@@ -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<String> occupationList = new ArrayList<>();
public static ArrayList<String> ageList = new ArrayList<>();
public static ArrayList<String> sexList = new ArrayList<>();
public static ArrayList<String> heightList = new ArrayList<>();
public static ArrayList<String> 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<Float> averageBoyHeight = new ArrayList<>();
public static ArrayList<Float> 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<Float> averageBoyWeight = new ArrayList<>();
public static ArrayList<Float> 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 = {
"瘀血质气机失调,血行不畅,应慎食雪糕、冰淇淋、冰冻饮料等寒凉之品,以免影响气血运行。保持心情舒畅,是淤血质调理的重要环节。",
"阴虚质体内阴液不足,药膳应慎食辛辣刺激、煎炒爆炸以及羊肉、狗肉等温热之物,以免耗伤阴液。",
"阳虚质阳气亏虚,药膳应忌生冷寒凉,即使盛夏,也不主张多吃诸如西瓜、梨、苦瓜等寒凉生冷之物,以免损伤阳气。",
"痰湿质痰湿偏盛,药膳应慎食肥甘油腻、厚味滋补之物,以免助湿生痰。",
"湿热质体内湿热偏盛,药膳应慎食牛肉、狗肉、鹿肉、辣椒、姜、葱及肥甘厚味之物,以免助湿生热。",
"气郁质气机不畅,心情抑郁,,应慎食雪糕、冰淇淋、冰冻饮料等寒凉之品,以免影响气血运行。同淤血质一样,保持心情舒畅,也是气郁质调理的重要环节。",
"气虚质中气不足,脾胃消化功能较弱,药膳应忌过于粘腻、寒凉或难以消化之物,以免食滞难化,影响脾胃功能。",
"平和质人阴阳气血平衡,药膳调理不可偏补、贪补,以保持人体阴阳平衡状态最为紧要。所谓“不伤不扰,顺其自然”。"
};
}

View File

@@ -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);
}
/**
* 获取体质需要的食材
* {

View File

@@ -0,0 +1,24 @@
<vector android:height="24dp" android:viewportHeight="1024.0"
android:viewportWidth="1024.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#92BE33" android:pathData="M512,1024C230.4,1024 0,793.6 0,512S230.4,0 512,0s512,230.4 512,512 -230.4,512 -512,512z"/>
<path android:fillColor="#61872E" android:pathData="M1024,512c0,-30.4 -2.8,-60.1 -8,-89L580.5,202.5s-36.1,-0.8 -48.2,0c-12,0.8 -41.6,1.5 -61.2,12.1 -19.6,10.6 -49.7,38 -49.7,38s-10,-7.1 -25.1,-3.5c-15,3.5 -19.3,22.3 -19.3,22.3s-10.8,86 -9.3,157.4c0,0 -37.4,-32.7 -25.9,32.6 4.2,23.5 26.7,9.2 34.2,6.7 15,73.4 106.7,129.7 98,153 -5.5,14.7 -6.5,16.2 -22.1,21.8 -10.5,3.8 -28.1,5.6 -35.6,17.7 -14,22.5 -7.4,23.8 -7.4,23.8s-92.6,38.5 -100.5,49.6c-7.9,11.1 -7.9,96.9 -7.9,96.9l183.4,192.5c9.2,0.5 18.5,0.8 27.9,0.8 281.6,0 512,-230.4 512,-512z"/>
<path android:fillColor="#0D946D" android:pathData="M510.5,716.6l5.6,-9.9 52.2,-19.3 24.7,-21 42.7,14.4 55,25.4 23.6,19.3 2.8,23.2 6.2,80.7 -216.1,5.5zM503.8,717.7l-5.5,-10 -51.4,-19.3 -24.3,-21 -42,14.4 -54.2,25.4 -23.2,19.3 -2.8,23.2 -6.1,80.7 212.8,5.5z"/>
<path android:fillColor="#F3D8C2" android:pathData="M562.4,604.4l9.4,41.4 6.6,22.1 -35.4,16.6 -18.8,5.5 -7.7,17.1 -8.8,6.1 -4.4,-25.4 -39.8,-10.5 -10.5,-11.6 6.1,-19.9 10,-40.9 28.2,12.7 19.4,2.8z"/>
<path android:fillColor="#3AB394" android:pathData="M527.6,687.3l-6.1,18.8 15.5,-2.2 31.5,-7.2 19.3,-11.1 16.6,-17.7 11.1,1.1 3.3,-9.4 -13.8,-8.8 -11.6,-5.5 -6.1,-10.5 -14.4,-2.2 -5,3.9 7.7,13.8 4.4,14.4 -7.7,10.5zM458.5,630.9l-14.9,0.5 -14.9,8.3 -19.3,7.2 -6.6,16.6v12.7l24.3,-7.2 19.9,19.3 39.8,16 14.4,2.2 -1.1,-18.8 -19.9,-3.9 -16.6,-6.6 -14.9,-8.3 2.8,-18.2z"/>
<path android:fillColor="#F3D8C2" android:pathData="M585.1,331.2c-0.8,2.4 -1.9,4.6 -3.4,6.8 -0.6,0.9 -1.6,1.4 -2.7,1.8v20.9s-89.9,-23.7 -114,-66.4c-4.2,1.3 -8.4,2.7 -12.7,3.2 -13.8,8.4 -64.9,41.6 -71.1,73.6 -7.2,37 268.4,104.5 268.4,104.5s14.1,-96.1 -64.4,-144.4"/>
<path android:fillColor="#F3D8C2" android:pathData="M649.5,475.6c-19.1,82.5 -86.8,143.8 -135.6,143.8 -13,0 -30.1,-7 -47.9,-19.4 -44.3,-30.8 -92.9,-95.1 -92.9,-169.5 0,-22.2 0,-34.3 5.3,-54.1"/>
<path android:fillColor="#474341" android:pathData="M513.9,623.8c-13.8,0 -31.7,-7.2 -50.4,-20.2 -47.2,-32.8 -94.8,-99.1 -94.8,-173.1 0,-22.4 0,-34.7 5.4,-55.2l8.5,2.3c-5.2,19.4 -5.2,31.3 -5.2,53 0,70.8 45.7,134.4 91,165.9 17,11.8 33.5,18.6 45.4,18.6 46.7,0 112.8,-60 131.3,-140.4l8.6,2c-20.1,86.8 -89.9,147.2 -140,147.2"/>
<path android:fillColor="#B77917" android:pathData="M655.5,268.3c-13.3,-12.5 -32.7,-7 -48.9,-0.9 2.6,-5.5 12.1,-22.2 14.6,-27.6 -10.8,-9.4 -32.9,-0.1 -45,6.5 3.4,-7.7 9.9,-23.7 17.3,-25.2 -14.3,-30.2 -48.5,-28.3 -77.7,-24.9 -36.8,4.3 -72.2,22.4 -99.9,50.9 -10,-8.8 -25.3,-4.4 -34,6.1 -8.7,10.5 -12.3,25.3 -14.8,39.7 -5.9,33.5 -5.1,91 -2.8,125.2l12.6,-0.1c-0.2,-54.8 30.5,-113.5 86.1,-129.5 4.2,-1.2 6.5,3.5 4.9,6.5 4.6,20.5 35.9,33.5 52.8,41.8 17.1,8.4 53.3,27.6 60.3,-0.5 0.9,-3.5 4.9,-3.9 7.4,-2 8.7,6.9 12.4,16.1 19.6,24.4 6.3,7.3 13.9,13.2 20.1,20.7 9.1,11.1 15.3,22.6 18,36.3l20.2,-0.2c24.1,-69.4 -0.9,-138 -10.6,-147.2"/>
<path android:fillColor="#474341" android:pathData="M511.7,625.7c-14.2,0 -32.5,-7.3 -51.5,-20.5 -47.6,-33.1 -95.6,-100 -95.6,-174.7 0,-21.8 0,-35 5.5,-55.7a6.3,6.3 0,0 1,7.7 -4.4,6.3 6.3,0 0,1 4.4,7.7c-5.1,19.2 -5.1,31 -5.1,52.5 0,70.2 45.3,133.1 90.2,164.4 16.7,11.6 32.8,18.3 44.3,18.3 46,0 111.1,-59.4 129.5,-138.9a6.3,6.3 0,0 1,7.5 -4.7,6.3 6.3,0 0,1 4.7,7.5c-20.3,87.6 -91,148.7 -141.8,148.7M725.1,842.2H293.7l-6.3,-6.6s3.1,-57.3 5.2,-96.9c2.3,-42.9 117.3,-73.8 130.5,-77.2 3.3,-0.9 6.8,1.1 7.6,4.5a6.3,6.3 0,0 1,-4.5 7.6c-46.1,11.9 -119.7,40.2 -121.1,65.7 -1.7,31.5 -4,74.1 -4.8,90.3h418.1c-0.9,-16.2 -3.2,-58.8 -4.8,-90.3 -1.3,-25.6 -68.5,-54 -110.5,-66a6.3,6.3 0,0 1,-4.3 -7.7,6.3 6.3,0 0,1 7.7,-4.3c12,3.4 117.4,34.6 119.6,77.4 2.1,39.6 5.2,96.9 5.2,96.9l-6.3,6.6z"/>
<path android:fillColor="#474341" android:pathData="M529.1,693.8a6.3,6.3 0,0 1,-0.7 -12.5c17.8,-2.1 33.5,-8.6 43.8,-18 -8.6,-17.7 -13.2,-35.9 -13.8,-54.2a6.3,6.3 0,0 1,6.1 -6.4c3.4,0 6.3,2.6 6.4,6.1 0.5,17.8 5.4,35.6 14.4,52.9l-0.9,7.2c-12.1,13.2 -32,22.3 -54.6,24.9a4.7,4.7 0,0 1,-0.7 0.1M502.7,695.5a5.8,5.8 0,0 1,-0.8 -0c-23.7,-2.8 -43.1,-11.9 -56.2,-26.1l-0.9,-7.2c9.1,-16.7 14.1,-33.9 15,-51.2 0.2,-3.5 3.2,-6.3 6.6,-5.9a6.3,6.3 0,0 1,5.9 6.6c-0.9,17.7 -5.7,35.3 -14.3,52.4 11,10.4 26.2,16.8 45.4,19a6.3,6.3 0,0 1,-0.7 12.5"/>
<path android:fillColor="#474341" android:pathData="M498.3,689.2v140.8c0,8.1 12.5,8.1 12.5,0v-140.8c0,-8.1 -12.5,-8.1 -12.5,0"/>
<path android:fillColor="#474341" android:pathData="M504.6,737.3c-0.9,0 -1.9,-0.2 -2.8,-0.7a6.3,6.3 0,0 1,-2.8 -8.4L520,686.4a6.3,6.3 0,0 1,8.4 -2.8,6.3 6.3,0 0,1 2.8,8.4l-21,41.8a6.3,6.3 0,0 1,-5.6 3.5M423.9,676.8c20.4,22.3 46.4,30.8 75.4,36.3 7.9,1.5 11.3,-10.6 3.3,-12.1 -26.9,-5.1 -50.8,-12.2 -69.8,-33.1 -5.4,-6 -14.3,2.9 -8.9,8.9"/>
<path android:fillColor="#474341" android:pathData="M519.4,712.8c32.6,-3 71,-10.2 89,-41.2 4,-7 -6.8,-13.3 -10.8,-6.3 -15.6,27 -50.2,32.5 -78.2,35 -8,0.7 -8,13.3 0,12.5M406.7,669.8c0.4,-7.8 3.6,-14.8 10.7,-18.7 4.5,-2.5 9.8,-1 14,-3.5 3.8,-2.3 6.3,-6.2 10.6,-8.2 5.3,-2.6 10.7,-3 16.4,-2.6 8,0.6 8,-11.9 0,-12.5 -7.9,-0.6 -15.7,0.6 -22.7,4.3 -6.1,3.2 -9.6,6.6 -16.3,8.4 -15.4,4 -24.4,17.4 -25.1,32.8 -0.4,8.1 12.1,8 12.5,0"/>
<path android:fillColor="#474341" android:pathData="M574,640.9c7,-2.4 13.1,0.1 15.1,7.2 0.9,2.9 3.2,4.2 6,4.6 5.3,0.7 12.7,1.5 15.5,6.8 1.8,3.4 1.9,9.4 2.3,13.1 0.8,7.9 13.4,8 12.5,0 -0.8,-7.8 -1.1,-17.9 -6.7,-23.9 -5.7,-6.1 -15.8,-7.5 -23.6,-8.5 2,1.5 4,3.1 6,4.6 -4,-13.6 -17.1,-20.6 -30.6,-16 -7.6,2.6 -4.3,14.7 3.3,12.1M359.8,425.7a6.3,6.3 0,0 1,-6.2 -5.9c-2,-29.9 -3.5,-90.3 3,-126.7 2.7,-15.2 6.6,-30.9 16.3,-42.6 6.2,-7.4 15.2,-12.3 24,-13 5.2,-0.4 10,0.6 14.3,2.8 28.3,-27.4 63.9,-44.8 100.9,-49.1 23.6,-2.7 67.6,-7.8 84.8,28.4a6.3,6.3 0,0 1,-4.4 8.8c-1.1,0.3 -2.8,1.8 -5.4,6.3 12.6,-4.5 26.9,-6.5 36.3,1.6 2.1,1.8 2.8,4.9 1.6,7.4 -1.3,2.8 -4.4,8.5 -7.6,14.2l-0,0c12.8,-3.2 28.6,-4.2 40.7,7.1 12.9,11.9 37,83.4 12.3,153.9a6.3,6.3 0,0 1,-11.8 -4.2c23.3,-66.4 -0.6,-132.7 -9,-140.5 -10.5,-9.8 -26.8,-5.6 -42.9,0.4a6.3,6.3 0,0 1,-6.8 -1.6,6.3 6.3,0 0,1 -1,-6.9c1.3,-2.8 4.4,-8.5 7.6,-14.2 1.6,-2.8 3.1,-5.7 4.4,-8.1 -7.4,-1.6 -19.9,1.7 -34.1,9.3a6.3,6.3 0,0 1,-7.2 -0.9,6.3 6.3,0 0,1 -1.5,-7.1l0.6,-1.3c4.1,-9.3 8.5,-18.5 14.2,-23.6 -13.7,-20.9 -41.7,-19.6 -69.3,-16.4 -35.7,4.1 -70.2,21.6 -97.1,49.1a6.3,6.3 0,0 1,-8.6 0.4c-2.7,-2.4 -6.1,-3.4 -10,-3.1 -5.6,0.4 -11.3,3.6 -15.4,8.5 -7.9,9.4 -11.2,23.2 -13.6,36.7 -5.5,30.6 -5.3,85.5 -2.8,123.6a6.3,6.3 0,0 1,-5.8 6.7,1.7 1.7,0 0,1 -0.4,0"/>
<path android:fillColor="#474341" android:pathData="M648.2,430.5a6.3,6.3 0,0 1,-6.1 -5.1c-6.8,-34.8 -32.2,-62.4 -56.5,-85.1 0.1,3.1 0.2,6.3 0.3,9.7 0,2.5 0.1,4.7 0.2,6.3a6.2,6.2 0,0 1,-2 5c-1.4,1.3 -3.2,1.9 -5.1,1.6 -24.4,-3.3 -83.5,-16.4 -116.2,-65.9 -25.2,10.9 -74,38.8 -82.8,93.3a6.3,6.3 0,1 1,-12.4 -2c10.5,-64.4 70.2,-94.8 95.4,-104.9a6.3,6.3 0,0 1,7.7 2.6c26.5,44.1 76.3,58.7 102.7,63.4 -0.2,-7.1 -0.5,-19.2 -2.2,-23a6.3,6.3 0,1 1,9.9 -7.2c28.7,26.1 64.5,58.6 73.3,103.8 0.7,3.4 -1.6,6.7 -5,7.3 -0.4,0.1 -0.8,0.1 -1.2,0.1"/>
<path android:fillColor="#F3D8C2" android:pathData="M366.7,424.6c-1.3,-3.2 -5.6,-4.7 -9.3,-4.2 -3.7,0.5 -6.8,2.7 -9.3,5.3 -8.8,8.9 -11.1,21.7 -10.7,33.6 0.2,5.5 0.9,11.2 3.7,16.1 2.9,4.9 8.3,8.9 14.4,8.9 7.3,0 13.1,-5.1 18.1,-10"/>
<path android:fillColor="#474341" android:pathData="M372.2,421.4c-6.4,-8.9 -17.2,-9.3 -25.7,-2.6 -10.6,8.3 -14.6,22.1 -15.2,35 -0.6,12.8 1.9,27.6 14.3,34.2 12.3,6.6 23.7,-0.8 32.6,-9.2 5.9,-5.5 -3,-14.4 -8.9,-8.9 -6.5,6.1 -15.1,13.3 -22.7,2.3 -3.1,-4.4 -3,-11.5 -2.9,-16.6 0.1,-4.3 0.6,-8.6 1.7,-12.7 0.7,-2.5 10.3,-23 15.9,-15.2 4.7,6.5 15.6,0.2 10.8,-6.3"/>
<path android:fillColor="#F3D8C2" android:pathData="M648.2,432.3c0.3,-12 13.5,-12.5 17.7,-11.9 4.2,0.5 7.8,2.7 10.7,5.3 10.1,8.9 12.7,21.7 12.3,33.6 -0.2,5.6 -1,11.2 -4.3,16.2 -3.3,4.9 -9.5,8.9 -16.5,8.9 -8.3,0 -15,-5.1 -20.7,-10"/>
<path android:fillColor="#474341" android:pathData="M654.5,432.3c0.8,-6.4 8.8,-6.3 13,-4.7 7.8,2.9 12.3,11.1 14.1,18.9 1.4,5.7 1.9,13.7 0.3,19.4 -4.7,16.7 -20.2,12.1 -30.1,4 -6.2,-5.1 -15.1,3.7 -8.9,8.9 11.9,9.8 27,16.9 40.9,6.3 13.2,-10.1 13.6,-30.9 8.9,-45.5 -4.2,-13 -15.2,-25.8 -29.8,-25.7 -11.6,0.1 -19.4,7 -20.9,18.3 -1,8 11.5,7.9 12.5,-0M478.3,788.2a4.4,4.4 0,0 1,-4.2 -3c-2.2,-6.4 1,-12.3 3.5,-17.1 0.6,-1.1 1.2,-2.2 1.7,-3.3 -1,-0.5 -1.9,-0.9 -2.8,-1.3 -3.9,-1.7 -8.3,-3.6 -10.8,-8.1 -1.8,-3.2 -2.2,-7.3 -1.1,-11.7 1.5,-6.3 5.5,-12.4 11.8,-17.9 3.2,-2.8 6.5,-5.2 9.8,-7.5 1.9,-1.3 3.7,-2.6 5.5,-4a4.4,4.4 0,0 1,6.7 -4.9,5.9 5.9,0 0,1 2.6,4.7c0.1,3 -2,5.7 -3.8,7a186.9,186.9 0,0 1,-6 4.4c-3.2,2.3 -6.3,4.5 -9.1,6.9 -4.9,4.3 -8,8.8 -9.1,13.4 -0.5,2.2 -0.4,4.1 0.2,5.4 1,1.9 3.6,3 6.5,4.3 1.4,0.6 2.8,1.2 4.1,1.9 0.9,0.5 3.5,1.9 4.3,4.8 0.6,2.2 -0,4.1 -0.6,5.5 -0.7,1.5 -1.5,3.1 -2.3,4.7 -2.1,3.9 -3.9,7.3 -2.9,10.1a4.4,4.4 0,0 1,-4.2 5.9m15.3,-71.5h0.1,-0.1zM551.6,787.3a4.4,4.4 0,0 1,-3.2 -1.4c-3,-3.2 -4,-7.3 -4.9,-11 -0.7,-3.1 -1.4,-5.7 -3,-7.1 -1.2,-1 -3.2,-1.6 -5.4,-2.3 -3.9,-1.2 -8.8,-2.7 -11,-7.8 -1,-2.4 -1.1,-5.2 -0.3,-8.3 0.7,-2.8 1.9,-5.3 3.1,-7.7 1.5,-3.2 2.9,-5.9 2.7,-8.5 -0.2,-4 -4,-7.1 -5.6,-8.2 -3.1,-2.2 -6.3,-3 -8.5,-2.2 -2.3,0.8 -4.8,-0.4 -5.6,-2.7a4.4,4.4 0,0 1,2.7 -5.6c5,-1.8 11,-0.5 16.5,3.3 5.6,4 9,9.4 9.4,14.9 0.3,4.9 -1.8,9.2 -3.6,12.9 -1,2.1 -2,4.1 -2.5,6 -0.4,1.6 -0.2,2.4 -0.1,2.7 0.5,1.2 2.4,1.8 5.4,2.8 2.8,0.9 6,1.8 8.6,4 3.8,3.2 4.9,7.8 5.8,11.8 0.7,2.8 1.3,5.5 2.7,7a4.4,4.4 0,0 1,-0.2 6.2,4.5 4.5,0 0,1 -3,1.2"/>
<path android:fillColor="#925618" android:pathData="M400.5,263.8c-24.6,5.1 -26.4,50.3 -26.2,69.2 0.1,5.7 8.9,5.7 8.8,0 -0.1,-13.1 0.7,-56.8 19.7,-60.7 5.6,-1.1 3.2,-9.7 -2.4,-8.5M650.4,357.7c-0.1,7.6 -0.7,15.1 -1.2,22.7 -0.4,5.7 8.5,5.7 8.8,0 0.5,-7.5 1.1,-15.1 1.2,-22.7 0.1,-5.7 -8.8,-5.7 -8.8,0M544.8,328.2a114.4,114.4 0,0 0,11.7 4c5.5,1.5 7.8,-7 2.4,-8.5a114.3,114.3 0,0 1,-11.7 -4c-5.3,-2.1 -7.6,6.4 -2.4,8.5M466.3,270.6c19.6,16.7 38.9,35.3 61,48.9 4.9,3 9.3,-4.7 4.5,-7.6 -21.4,-13.2 -40.1,-31.2 -59.2,-47.5 -4.3,-3.7 -10.6,2.5 -6.3,6.2"/>
</vector>

View File

@@ -0,0 +1,11 @@
<vector android:height="24dp" android:viewportHeight="1024.0"
android:viewportWidth="1024.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF6C6D" android:pathData="M512,1024Q-0,1024 0,512 0,0 512,0t512,512Q1024,1024 512,1024z"/>
<path android:fillColor="#FFCA27" android:pathData="M699.9,461.1a77.9,77.9 0,0 0,-19.9 -30.4,93.9 93.9,0 0,0 -34.2,-20.4 109.4,109.4 0,0 0,-47.9 -4.5,137.9 137.9,0 0,0 -37.8,9.2 209.6,209.6 0,0 0,-37 18.7,204.5 204.5,0 0,0 -32.2,25.4 133.3,133.3 0,0 0,-23.5 29.9,218.8 218.8,0 0,0 -21,-33.5 297,297 0,0 0,-27.4 -31.6,242.3 242.3,0 0,0 -30.8,-26.2 213.9,213.9 0,0 0,-30 -18.2,133.4 133.4,0 0,0 -57.9,-11.2 81.6,81.6 0,0 0,-26.6 5,63.2 63.2,0 0,0 -21.3,12.8 123.3,123.3 0,0 0,-17.6 22.4,74.7 74.7,0 0,0 -10.1,26.2 65.8,65.8 0,0 0,1.4 28.5c2.5,9.8 24.4,88.8 153.4,121.8a97.7,97.7 0,0 0,46.5 0.6q-8,35.5 -12.9,71.5a609,609 0,0 0,-5.6 83.2c0,22.6 -0.3,41.9 -0.6,57.5s-0.8,28.2 -1.1,38q-1.1,13.9 -1.7,27.9h65.5q-1.7,-17.9 -2.8,-35.8c-0.8,-10.9 -1.4,-22.6 -2,-35.7q-0.8,-19.6 -0.8,-39.1a653.6,653.6 0,0 1,5 -81.8q4.6,-37 12.3,-73.4c159.6,18.2 204.4,-59.8 210.8,-70.1a78.8,78.8 0,0 0,11.8 -32.4,73 73,0 0,0 -4.2,-34.4z"/>
<path android:fillColor="#FFCA27" android:pathData="M768.1,692a33,33 0,0 0,-8.4 -13,40.4 40.4,0 0,0 -14.5,-8.7 45.9,45.9 0,0 0,-20.3 -1.9,59.3 59.3,0 0,0 -16,3.9 88.7,88.7 0,0 0,-15.7 8,84.5 84.5,0 0,0 -13.7,10.8 56.9,56.9 0,0 0,-10 12.7,94.8 94.8,0 0,0 -8.9,-14.3 129.4,129.4 0,0 0,-11.6 -13.5,103.7 103.7,0 0,0 -13.1,-11.2 89.9,89.9 0,0 0,-12.7 -7.8,55.6 55.6,0 0,0 -12.2,-3.8 53.3,53.3 0,0 0,-12.3 -1,34 34,0 0,0 -11.3,2.2 25.8,25.8 0,0 0,-9 5.5,53.2 53.2,0 0,0 -7.5,9.5 31.8,31.8 0,0 0,-4.3 11.2,28.1 28.1,0 0,0 0.6,12.1c1.1,4.2 10.3,37.9 65.1,51.9a40.1,40.1 0,0 0,19.7 0.2q-3.4,15.2 -5.5,30.5a261,261 0,0 0,-2.4 35.5c0,9.6 -0.1,17.8 -0.2,24.5s-0.4,12 -0.5,16.2c-0.3,4 -0.5,7.9 -0.7,11.9h27.8q-0.7,-7.6 -1.2,-15.2c-0.4,-4.7 -0.6,-9.6 -0.8,-15.2s-0.4,-11.1 -0.4,-16.7a279.7,279.7 0,0 1,2.1 -34.9q2,-15.8 5.2,-31.4c67.7,7.8 86.7,-25.5 89.4,-29.9a33.6,33.6 0,0 0,5 -13.8,31.2 31.2,0 0,0 -1.8,-14.6z"/>
<path android:fillColor="#FFFFFF" android:pathData="M362.2,180.6a51,51 0,0 0,102 0,48.1 48.1,0 0,0 -14.3,-34.2s-29.7,-28.8 -35.4,-62.3h-2.8c-5.7,33.5 -35.1,61.9 -35.1,61.9a49,49 0,0 0,-14.3 34.6z"/>
<path android:fillColor="#FFFFFF" android:pathData="M843.1,547.6a32.8,32.8 0,0 0,65.6 0,31.5 31.5,0 0,0 -9.2,-22.2s-19.1,-18.7 -22.8,-40.5h-1.8c-3.7,21.8 -22.6,40.2 -22.6,40.2a32.1,32.1 0,0 0,-9.2 22.5z"/>
<path android:fillColor="#FFFFFF" android:pathData="M92.7,455.2a36.4,36.4 0,1 0,62.6 -25.6s-21.2,-21.6 -25.3,-46.7h-2c-4.1,25.2 -25.1,46.4 -25.1,46.4a37.6,37.6 0,0 0,-10.2 25.9z"/>
<path android:fillColor="#FFFFFF" android:pathData="M245.7,727.3a25.6,25.6 0,1 0,51 0,27.9 27.9,0 0,0 -7.2,-18.8s-14.9,-15.8 -17.7,-34.2H270.4c-2.9,18.4 -17.6,34 -17.6,34a28.4,28.4 0,0 0,-7.2 19z"/>
<path android:fillColor="#FFFFFF" android:pathData="M697.4,363.1a25.5,25.5 0,1 0,51 0,27.8 27.8,0 0,0 -7.2,-18.8s-14.9,-15.8 -17.7,-34.2h-1.4c-2.9,18.4 -17.5,34 -17.5,34a28.3,28.3 0,0 0,-7.2 19z"/>
</vector>

View File

@@ -0,0 +1,7 @@
<vector android:height="24dp" android:viewportHeight="1024.0"
android:viewportWidth="1024.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#4C4948" android:pathData="M873.9,1024h-93.8a25.8,25.8 0,1 1,0 -51.6h68V51.6h-68a25.8,25.8 0,1 1,0 -51.6h93.8a25.8,25.8 0,0 1,25.8 25.8v972.4a25.8,25.8 0,0 1,-25.8 25.8z"/>
<path android:fillColor="#4C4948" android:pathData="M873.9,290.8h-93.8a25.8,25.8 0,1 1,0 -51.6h93.8a25.8,25.8 0,1 1,0 51.6zM873.9,537.8h-93.8a25.8,25.8 0,1 1,0 -51.6h93.8a25.8,25.8 0,1 1,0 51.6zM873.9,784.8h-93.8a25.8,25.8 0,1 1,0 -51.6h93.8a25.8,25.8 0,1 1,0 51.6z"/>
<path android:fillColor="#E9443D" android:pathData="M418.2,217.9m-107.2,0a107.2,107.2 0,1 0,214.4 0,107.2 107.2,0 1,0 -214.4,0Z"/>
<path android:fillColor="#E9443D" android:pathData="M708,549.3c-27.5,-29.9 -105.2,-114.1 -137.2,-146.1 -39.2,-39.2 -71.5,-50.9 -104.9,-50.9H370.5c-33.3,0 -65.7,11.8 -104.9,51 -32,32 -109.7,116.2 -137.2,146.1 -6.2,6.8 -5.3,14.9 1.4,21.2 17.4,16.3 49.5,46.4 55.4,52.3 8.1,8.1 15.2,3.7 20.4,-1.6s96.3,-109.2 96.3,-109.2v486.2c0,12.7 7.9,20.6 17.6,20.6h63.7c10.8,0 24.5,-4.9 24.5,-24.5v-281.3h20.9v281.3c0,19.6 13.7,24.5 24.5,24.5h63.7c9.8,0 17.6,-7.8 17.6,-20.6V512s91.1,104 96.3,109.2c5.2,5.2 12.3,9.7 20.4,1.6 5.9,-5.9 38,-36 55.4,-52.3 6.7,-6.3 7.5,-14.5 1.4,-21.2z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector android:height="24dp" android:viewportHeight="1024.0"
android:viewportWidth="1024.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#CFEB70" android:pathData="M419.5,245.1m-218.1,0a218.1,218.1 0,1 0,436.2 0,218.1 218.1,0 1,0 -436.2,0Z"/>
<path android:fillColor="#313030" android:pathData="M541.5,232.7c-1.8,0 -3.6,-0.2 -5.3,-0.5a28.3,28.3 0,0 1,-5.1 -1.5,27.5 27.5,0 0,1 -4.7,-2.5 25.9,25.9 0,0 1,-4.1 -3.4,27.7 27.7,0 0,1 -3.4,-4.1 26.8,26.8 0,0 1,-2.5 -4.7,27.5 27.5,0 0,1 -1.6,-5.1 28.9,28.9 0,0 1,-0.5 -5.3c0,-1.8 0.2,-3.6 0.5,-5.3a28.4,28.4 0,0 1,4 -9.8,27.7 27.7,0 0,1 3.4,-4.1 27.7,27.7 0,0 1,4.1 -3.4,27.6 27.6,0 0,1 4.7,-2.5c1.7,-0.7 3.4,-1.2 5.1,-1.6a27.8,27.8 0,0 1,10.6 0c1.7,0.4 3.4,0.9 5.1,1.6a26.6,26.6 0,0 1,4.7 2.5,27.7 27.7,0 0,1 4.1,3.4 25.9,25.9 0,0 1,3.4 4.1c1,1.5 1.8,3 2.5,4.7 0.7,1.7 1.2,3.4 1.5,5.1 0.4,1.7 0.5,3.5 0.5,5.3 0,1.8 -0.2,3.6 -0.5,5.3a27.4,27.4 0,0 1,-1.5 5.1c-0.7,1.7 -1.5,3.2 -2.5,4.7a25.9,25.9 0,0 1,-3.4 4.1,25.9 25.9,0 0,1 -4.1,3.4c-1.5,1 -3,1.8 -4.7,2.5a27.4,27.4 0,0 1,-5.1 1.5c-1.7,0.4 -3.5,0.5 -5.3,0.5zM328.7,181.5a27,27 0,0 1,-19.2 -7.9c-10.6,-10.6 -10.6,-27.8 0,-38.4 54.6,-54.6 142.2,-60.7 203.7,-14 11.9,9 14.3,26.1 5.2,38 -9,11.9 -26.1,14.3 -38,5.2 -40,-30.3 -97,-26.4 -132.6,9.2a27,27 0,0 1,-19.2 7.9z"/>
<path android:fillColor="#313030" android:pathData="M592.9,71.7c-95.6,-95.6 -251.2,-95.6 -346.8,0 -89.1,89.1 -95.1,230.3 -18.1,326.5l-112.8,112.8L115.2,474.5c0,-15 -12.1,-27.1 -27.1,-27.1s-27.1,12.1 -27.1,27.1v102c0,15 12.1,27.1 27.1,27.1h102c15,0 27.1,-12.1 27.1,-27.1s-12.1,-27.1 -27.1,-27.1L153.5,549.4l112.8,-112.8c43.3,34.8 96.8,53.7 153.1,53.7 65.5,0 127.1,-25.5 173.4,-71.8 46.3,-46.3 71.8,-107.9 71.8,-173.4s-25.5,-127.1 -71.8,-173.4zM554.5,380.1c-0,0 -0,0 0,0 -36.1,36.1 -84,55.9 -135,55.9s-99,-19.9 -135,-55.9c-74.5,-74.5 -74.5,-195.6 0,-270 37.2,-37.2 86.1,-55.8 135,-55.8 48.9,0 97.8,18.6 135,55.8 36.1,36.1 55.9,84 55.9,135s-19.9,99 -55.9,135z"/>
<path android:fillColor="#FF5E8A" android:pathData="M599.4,778.9m-218.1,0a218.1,218.1 0,1 0,436.2 0,218.1 218.1,0 1,0 -436.2,0Z"/>
<path android:fillColor="#313030" android:pathData="M477.4,845.5c-1.8,0 -3.6,-0.2 -5.3,-0.5a28.8,28.8 0,0 1,-5.1 -1.6,27.2 27.2,0 0,1 -4.7,-2.5 27.7,27.7 0,0 1,-4.1 -3.4,27.7 27.7,0 0,1 -3.4,-4.1 27.6,27.6 0,0 1,-2.5 -4.7,28.7 28.7,0 0,1 -1.5,-5.1 27.2,27.2 0,0 1,-0.5 -5.3c0,-1.8 0.2,-3.6 0.5,-5.3a27.4,27.4 0,0 1,1.5 -5.1c0.7,-1.7 1.5,-3.2 2.5,-4.7a27.7,27.7 0,0 1,3.4 -4.1,25.9 25.9,0 0,1 4.1,-3.4 27.6,27.6 0,0 1,4.7 -2.5,28.7 28.7,0 0,1 5.1,-1.5 26.8,26.8 0,0 1,10.6 0,27.4 27.4,0 0,1 5.1,1.5c1.7,0.7 3.2,1.5 4.7,2.5a25.9,25.9 0,0 1,4.1 3.4,25.9 25.9,0 0,1 3.4,4.1c1,1.5 1.8,3 2.5,4.7 0.7,1.6 1.2,3.3 1.5,5.1 0.4,1.7 0.5,3.5 0.5,5.3 0,1.8 -0.2,3.6 -0.5,5.3a28.7,28.7 0,0 1,-1.5 5.1c-0.7,1.6 -1.5,3.2 -2.5,4.7a25.9,25.9 0,0 1,-3.4 4.1,27.7 27.7,0 0,1 -4.1,3.4c-1.5,1 -3,1.8 -4.7,2.5 -1.6,0.7 -3.3,1.2 -5.1,1.6 -1.7,0.4 -3.5,0.5 -5.3,0.5zM599.2,934.2c-32.9,0 -65.9,-10.3 -93.6,-31.3 -11.9,-9 -14.3,-26.1 -5.2,-38 9,-11.9 26.1,-14.3 38,-5.2 40,30.3 97,26.4 132.6,-9.2 10.6,-10.6 27.8,-10.6 38.4,0 10.6,10.6 10.6,27.8 0,38.4 -30,30 -70,45.4 -110.1,45.4z"/>
<path android:fillColor="#313030" android:pathData="M955.1,535.4l-36.9,-36.9 31.2,-31.2c10.6,-10.6 10.6,-27.8 0,-38.4 -10.6,-10.6 -27.8,-10.6 -38.4,0l-31.2,31.2 -36.9,-36.9c-10.6,-10.6 -27.8,-10.6 -38.4,0 -10.6,10.6 -10.6,27.8 0,38.4l36.9,36.9 -88.9,88.9c-43.3,-34.8 -96.8,-53.7 -153.1,-53.7 -65.5,0 -127.1,25.5 -173.4,71.8 -95.6,95.6 -95.6,251.2 0,346.8C473.8,1000.1 536.6,1024 599.4,1024s125.6,-23.9 173.4,-71.7c46.3,-46.3 71.8,-107.9 71.8,-173.4 0,-56.4 -18.9,-109.8 -53.7,-153.1l88.9,-88.9 36.9,36.9c5.3,5.3 12.2,7.9 19.2,7.9s13.9,-2.6 19.2,-7.9c10.6,-10.6 10.6,-27.8 0,-38.4zM734.4,913.9c-74.5,74.5 -195.6,74.5 -270,0s-74.5,-195.6 0,-270c36.1,-36.1 84,-55.9 135,-55.9 51,0 98.9,19.9 135,55.9l0,0 0,0c36.1,36.1 55.9,84 55.9,135 0,51 -19.9,99 -55.9,135z"/>
</vector>

View File

@@ -0,0 +1,6 @@
<vector android:height="24dp" android:viewportHeight="1024.0"
android:viewportWidth="1044.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#E9443D" android:pathData="M781.6,608.9c-6.1,39.3 -27.2,60.8 -60.8,60.8h-396.8c-33.6,0 -50.9,-24.8 -60.8,-60.8 -9.9,-36.1 -65.8,-510.3 -69.9,-548.1C189,23.1 220.4,0 254,0h536.7c33.6,0 65.2,26.4 60.8,60.8 -4.3,34.6 -63.9,508.8 -70,548.1z"/>
<path android:fillColor="#FFFFFF" android:pathData="M507.5,467h-48.1L357.2,343.4a69.5,69.5 0,0 1,-7.2 -10.2h-0.9v133.8h-35.1V195h35.1V323h0.9a118.1,118.1 0,0 1,7.2 -10l98.7,-118h43.4l-114.1,130.4 122.4,141.6zM730.8,448.4a183,183 0,0 1,-92 23.2c-39.3,0 -71,-12.4 -95.1,-37.3 -24,-24.9 -36.1,-58.1 -36.1,-99.6 0,-42 13.3,-76.6 39.9,-103.6 26.6,-27 60.6,-40.6 102.2,-40.6 29.4,0 54.2,4.7 74.6,14.1v37.9c-21.8,-13.7 -47.7,-20.6 -77.8,-20.6 -29.6,0 -54,10.1 -73.2,30.4 -19.3,20.3 -28.9,46.9 -28.9,80 0,34.1 8.8,60.6 26.5,79.6s41.6,28.4 71.7,28.4c20.7,0 38.3,-4 52.9,-12V354.8h-59V323.7h94.3v124.7z"/>
<path android:fillColor="#E9443D" android:pathData="M925.9,1024H118.8c-65.6,0 -118.8,-53.3 -118.8,-118.8V247.5c0,-65.6 53.3,-118.8 118.8,-118.8h807c65.5,0 118.8,53.3 118.8,118.8v657.7c0.1,65.5 -53.3,118.8 -118.8,118.8zM118.8,183.3a64.3,64.3 0,0 0,-64.2 64.2v657.7c0,35.4 28.8,64.2 64.2,64.2h807a64.2,64.2 0,0 0,64.2 -64.2V247.5a64.2,64.2 0,0 0,-64.2 -64.2H118.8z"/>
</vector>

View File

@@ -0,0 +1,11 @@
<vector android:height="24dp" android:viewportHeight="1024.0"
android:viewportWidth="1024.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#EC7BB0" android:pathData="M571.2,257.6l20,-108.8H432.8l20,108.8 -89.6,581.6L512,992l148.8,-152.8z"/>
<path android:fillColor="#0D1014" android:pathData="M591.2,148.8H432.8l20,108.8h118.4z"/>
<path android:fillColor="#6A576D" android:pathData="M512,1000c-2.4,0 -4,-0.8 -5.6,-2.4l-148.8,-152.8c-1.6,-1.6 -2.4,-4 -2.4,-7.2l89.6,-580.8 -20,-107.2c-0.8,-2.4 0,-4.8 1.6,-6.4s4,-3.2 6.4,-3.2L592,140c2.4,0 4.8,0.8 6.4,3.2s2.4,4 1.6,6.4l-20,107.2 89.6,580.8c0,2.4 -0.8,4.8 -2.4,7.2l-148.8,152.8c-2.4,1.6 -4,2.4 -6.4,2.4zM372,836.8l140,144 140,-144 -88.8,-578.4L563.2,256l18.4,-99.2L442.4,156.8L460.8,256v2.4l-88.8,578.4z"/>
<path android:fillColor="#6A576D" android:pathData="M571.2,265.6L452.8,265.6c-4,0 -7.2,-2.4 -8,-6.4L424,150.4c-0.8,-2.4 0,-4.8 1.6,-6.4s4,-3.2 6.4,-3.2h159.2c2.4,0 4.8,0.8 6.4,3.2s2.4,4 1.6,6.4l-20.8,108.8c0,3.2 -3.2,6.4 -7.2,6.4zM459.2,249.6h104.8l17.6,-92.8L442.4,156.8l16.8,92.8z"/>
<path android:fillColor="#FFFFFF" android:pathData="M710.4,32L512,148.8l81.6,153.6L728,108.8z"/>
<path android:fillColor="#6A576D" android:pathData="M593.6,310.4c-3.2,0 -5.6,-1.6 -7.2,-4L504.8,152c-2.4,-4 -0.8,-8.8 3.2,-10.4L706.4,24.8c2.4,-0.8 4.8,-0.8 7.2,0 2.4,0.8 4,3.2 4.8,5.6l17.6,76.8c0.8,2.4 0,4.8 -1.6,6.4L600,307.2c-0.8,1.6 -3.2,3.2 -6.4,3.2zM522.4,151.2l72,135.2 124.8,-180 -14.4,-62.4 -182.4,107.2z"/>
<path android:fillColor="#FFFFFF" android:pathData="M313.6,32L512,148.8 430.4,302.4 296,108.8z"/>
<path android:fillColor="#6A576D" android:pathData="M430.4,310.4c-2.4,0 -4.8,-1.6 -6.4,-3.2L289.6,113.6c-1.6,-1.6 -1.6,-4 -1.6,-6.4l17.6,-76.8c0.8,-2.4 2.4,-4.8 4.8,-5.6 2.4,-0.8 4.8,-0.8 7.2,0l198.4,116.8c4,2.4 4.8,7.2 3.2,10.4L437.6,306.4c-1.6,2.4 -4,4 -7.2,4zM304.8,107.2l124.8,180 72,-135.2L319.2,44.8l-14.4,62.4z"/>
</vector>

View File

@@ -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">
<com.github.czy1121.view.TurnCardListView
@@ -27,11 +27,11 @@
<android.support.v7.widget.CardView
android:id="@+id/result_layout"
android:layout_width="300dp"
android:layout_height="450dp"
android:layout_height="500dp"
android:layout_centerInParent="true"
android:visibility="gone"
app:cardElevation="0dp"
app:cardCornerRadius="20dp">
app:cardCornerRadius="20dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
@@ -46,20 +46,24 @@
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginTop="30dp"
android:gravity="center"
android:orientation="horizontal">
<com.github.siyamed.shapeimageview.CircularImageView
android:id="@+id/physique_image"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="40dp"
android:scaleType="centerCrop"
tools:src="@drawable/test_avatar" />
<TextView
android:id="@+id/title"
android:id="@+id/physique_name_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:layout_gravity="center_vertical"
android:textColor="#dad9d9"
android:textStyle="bold"
tools:text="淤血质" />
@@ -67,140 +71,153 @@
<android.support.v7.widget.CardView
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_height="320dp"
android:layout_gravity="center"
app:cardBackgroundColor="#95def4">
<LinearLayout
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="3dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:text="常见表现"
android:textSize="10sp" />
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="@color/place_holder" />
<TextView
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="3dp"
android:layout_marginLeft="6dp"
android:layout_marginTop="10dp"
android:text="常见表现"
android:textSize="14sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:alpha="0.5"
android:background="@color/place_holder" />
<TextView
android:id="@+id/expression_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:textSize="12sp"
tools:text="平素面色晦暗,皮肤偏暗或色素沉着,容易出现瘀斑,易患疼痛,口唇暗淡或紫,舌质暗有点、片状瘀斑,舌下静脉曲张。眼眶暗黑,鼻部暗滞,发易脱落,皮肤发干,或有出血倾向、吐血,女性多见痛经、闭经、或经血中多有血块,或经色紫黑有块。" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:textSize="8sp"
tools:text="平素面色晦暗,皮肤偏暗或色素沉着,容易出现瘀斑,易患疼痛,口唇暗淡或紫,舌质暗有点、片状瘀斑,舌下静脉曲张。眼眶暗黑,鼻部暗滞,发易脱落,皮肤发干,或有出血倾向、吐血,女性多见痛经、闭经、或经血中多有血块,或经色紫黑有块。" />
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="3dp"
android:layout_marginLeft="6dp"
android:layout_marginTop="10dp"
android:text="特点"
android:textSize="14sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:alpha="0.5"
android:background="@color/place_holder" />
<TextView
android:id="@+id/characteristic_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:textSize="12sp"
tools:text="瘀血质的人,血行不畅,临床常呈现肤色晦暗、色素沉着、瘀斑、性格抑郁、健忘,舌质紫黯或有瘀点、舌下络脉紫黯或增粗,脉涩。易患痛证、血证、症瘕等。" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="3dp"
android:layout_marginLeft="6dp"
android:layout_marginTop="10dp"
android:text="心理特征"
android:textSize="14sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:alpha="0.5"
android:background="@color/place_holder" />
<TextView
android:id="@+id/mentality_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:textSize="12sp"
tools:text="性情急躁,心情易烦,健忘。" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="3dp"
android:layout_marginLeft="6dp"
android:layout_marginTop="10dp"
android:text="注意事项"
android:textSize="14sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:alpha="0.5"
android:background="@color/place_holder" />
<TextView
android:id="@+id/matters_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:textSize="12sp"
tools:text="瘀血质气机失调,血行不畅,应慎食雪糕、冰淇淋、冰冻饮料等寒凉之品,以免影响气血运行。保持心情舒畅,是淤血质调理的重要环节" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="3dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:text="特点"
android:textSize="10sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="@color/place_holder" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:textSize="8sp"
tools:text="瘀血质的人,血行不畅,临床常呈现肤色晦暗、色素沉着、瘀斑、性格抑郁、健忘,舌质紫黯或有瘀点、舌下络脉紫黯或增粗,脉涩。易患痛证、血证、症瘕等。" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="3dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:text="心理特征"
android:textSize="10sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="@color/place_holder" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:textSize="8sp"
tools:text="性情急躁,心情易烦,健忘。" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="3dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:text="注意事项"
android:textSize="10sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="@color/place_holder" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:textSize="8sp"
tools:text="瘀血质气机失调,血行不畅,应慎食雪糕、冰淇淋、冰冻饮料等寒凉之品,以免影响气血运行。保持心情舒畅,是淤血质调理的重要环节" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</android.support.v7.widget.CardView>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.ninefourone.nutritionmaster.modules.addinformation.AddInformationActivity">
</android.support.constraint.ConstraintLayout>

View File

@@ -0,0 +1,77 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.ninefourone.nutritionmaster.modules.login.LoginActivity">
<!-- Login progress -->
<ProgressBar
android:id="@+id/login_progress"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:visibility="gone" />
<ScrollView
android:id="@+id/login_form"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/email_login_form"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<AutoCompleteTextView
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_email"
android:inputType="textEmailAddress"
android:maxLines="1"
android:singleLine="true" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_password"
android:imeActionId="6"
android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionUnspecified"
android:inputType="textPassword"
android:maxLines="1"
android:singleLine="true" />
</android.support.design.widget.TextInputLayout>
<Button
android:id="@+id/email_sign_in_button"
style="?android:textAppearanceSmall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/action_sign_in"
android:textStyle="bold" />
</LinearLayout>
</ScrollView>
</LinearLayout>

View File

@@ -59,6 +59,7 @@
android:src="@drawable/test_avatar" />
<TextView
android:id="@+id/tool_bar_nickname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
@@ -147,27 +148,40 @@
android:layout_height="60dp"
android:src="@drawable/test_avatar" />
<RelativeLayout
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginTop="10dp">
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/user_nick_name"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_height="20dp"
android:gravity="center"
android:text="ScorpioMiku"
android:textColor="#FFF" />
</RelativeLayout>
<TextView
android:id="@+id/user_occupation_text"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:gravity="center"
android:text="请完善信息"
android:textColor="#FFF"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
<ImageView
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="10dp"
android:layout_marginEnd="10dp"
android:layout_alignParentEnd="true"
android:layout_alignTop="@+id/add_information_button"
android:alpha="0.2"
android:src="@drawable/icon_black" />
@@ -179,6 +193,8 @@
android:layout_marginRight="25dp"
android:layout_marginTop="15dp"
android:src="@drawable/ic_data_add" />
</RelativeLayout>
</LinearLayout>
@@ -192,340 +208,355 @@
android:layout_height="wrap_content">
<LinearLayout
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:layout_height="wrap_content">
<RelativeLayout
<LinearLayout
android:id="@+id/add_infor_ll"
android:layout_width="match_parent"
android:layout_height="36dp"
android:orientation="horizontal">
android:layout_height="200dp"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="65dp"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/adder_infor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击我填写信息"
android:textSize="20sp" />
</LinearLayout>
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/ic_score" />
<TextView
android:layout_width="wrap_content"
android:layout_height="10dp"
android:text="体质"
android:textColor="@color/colorPrimary"
android:textSize="8sp" />
</LinearLayout>
<com.cb.ratingbar.CBRatingBar
android:id="@+id/cb_rating_bar"
android:layout_width="150dp"
android:layout_height="36dp"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_marginTop="3dp"
app:starCanTouch="true"
app:starCount="5"
app:starCoverDir="left_to_right"
app:starEndColor="#2a00ff"
app:starFillColor="#c6c6c6"
app:starMaxProgress="120"
app:starPathData="@string/pig"
app:starProgress="60"
app:starShowStroke="false"
app:starSize="20dp"
app:starSpace="10dp"
app:starStartColor="#30e2f5"
app:starStrokeWidth="1dp"
app:starUseGradient="true" />
</RelativeLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="10dp" />
<FrameLayout
<LinearLayout
android:id="@+id/show_information"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipChildren="false">
android:orientation="vertical">
<com.github.mikephil.charting.charts.RadarChart
android:id="@+id/spider_view"
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_gravity="center">
</com.github.mikephil.charting.charts.RadarChart>
</FrameLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="10dp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<LinearLayout
android:layout_width="65dp"
android:layout_height="match_parent"
android:gravity="center"
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="36dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_width="65dp"
android:layout_height="match_parent"
android:layout_weight="4"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/ic_bmi" />
android:src="@drawable/ic_score" />
<TextView
android:layout_width="wrap_content"
android:layout_height="10dp"
android:text="BMI值"
android:text="体质"
android:textColor="@color/colorPrimary"
android:textSize="8sp" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:gravity="center"
android:orientation="vertical">
<com.cb.ratingbar.CBRatingBar
android:id="@+id/score_bar"
android:layout_width="150dp"
android:layout_height="36dp"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_marginTop="3dp"
app:starCanTouch="true"
app:starCount="5"
app:starCoverDir="left_to_right"
app:starEndColor="#2a00ff"
app:starFillColor="#c6c6c6"
app:starMaxProgress="120"
app:starPathData="@string/pig"
app:starProgress="60"
app:starShowStroke="false"
app:starSize="20dp"
app:starSpace="10dp"
app:starStartColor="#30e2f5"
app:starStrokeWidth="1dp"
app:starUseGradient="true" />
<TextView
android:layout_width="8dp"
android:layout_height="8dp"
android:background="@color/color_bar_self" />
</RelativeLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="8dp"
android:text="@string/self_information"
android:textSize="5sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="10dp" />
<TextView
android:layout_width="8dp"
android:layout_height="8dp"
android:background="@color/color_bar_deeper" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipChildren="false">
<TextView
android:layout_width="wrap_content"
android:layout_height="8dp"
android:text="@string/standrad_information"
android:textSize="5sp" />
</LinearLayout>
<com.github.mikephil.charting.charts.RadarChart
android:id="@+id/spider_view"
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_gravity="center">
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.5" />
</LinearLayout>
</com.github.mikephil.charting.charts.RadarChart>
</FrameLayout>
<com.akexorcist.roundcornerprogressbar.RoundCornerProgressBar
android:layout_width="145dp"
android:layout_height="36dp"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_marginTop="3dp"
app:rcBackgroundColor="@color/color_bar_background"
app:rcBackgroundPadding="5dp"
app:rcMax="100"
app:rcProgress="56.6"
app:rcProgressColor="@color/color_bar_self"
app:rcRadius="10dp"
app:rcReverse="false"
app:rcSecondaryProgress="74.1"
app:rcSecondaryProgressColor="@color/color_bar_deeper" />
<TextView
android:layout_width="match_parent"
android:layout_height="10dp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<LinearLayout
android:layout_width="65dp"
android:layout_height="match_parent"
android:gravity="center"
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_width="65dp"
android:layout_height="match_parent"
android:layout_weight="4"
android:gravity="center"
android:orientation="vertical">
android:orientation="horizontal">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/ic_height" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/ic_bmi" />
<TextView
android:layout_width="wrap_content"
android:layout_height="10dp"
android:text="BMI值"
android:textColor="@color/colorPrimary"
android:textSize="8sp" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="8dp"
android:layout_height="8dp"
android:background="@color/color_bar_self" />
<TextView
android:layout_width="wrap_content"
android:layout_height="8dp"
android:text="@string/self_information"
android:textSize="5sp" />
<TextView
android:layout_width="8dp"
android:layout_height="8dp"
android:background="@color/color_bar_deeper" />
<TextView
android:layout_width="wrap_content"
android:layout_height="8dp"
android:text="@string/standrad_information"
android:textSize="5sp" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="10dp"
android:text="身高"
android:textColor="@color/colorPrimary"
android:textSize="8sp" />
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.5" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:gravity="center"
android:orientation="vertical">
<com.akexorcist.roundcornerprogressbar.RoundCornerProgressBar
android:id="@+id/bmi_bar"
android:layout_width="145dp"
android:layout_height="36dp"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_marginTop="3dp"
app:rcBackgroundColor="@color/color_bar_background"
app:rcBackgroundPadding="5dp"
app:rcProgressColor="@color/color_bar_self"
app:rcRadius="10dp"
app:rcReverse="false"
app:rcSecondaryProgressColor="@color/color_bar_deeper" />
<TextView
android:layout_width="8dp"
android:layout_height="8dp"
android:background="@color/color_bar_self" />
</RelativeLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="8dp"
android:text="@string/self_information"
android:textSize="5sp" />
<TextView
android:layout_width="8dp"
android:layout_height="8dp"
android:background="@color/color_bar_deeper" />
<TextView
android:layout_width="wrap_content"
android:layout_height="8dp"
android:text="@string/standrad_information"
android:textSize="5sp" />
</LinearLayout>
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.5" />
</LinearLayout>
<com.akexorcist.roundcornerprogressbar.RoundCornerProgressBar
android:layout_width="145dp"
android:layout_height="36dp"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_marginTop="3dp"
app:rcBackgroundColor="@color/color_bar_background"
app:rcBackgroundPadding="5dp"
app:rcMax="100"
app:rcProgress="16.6"
app:rcProgressColor="@color/color_bar_self"
app:rcRadius="10dp"
app:rcReverse="false"
app:rcSecondaryProgress="32.1"
app:rcSecondaryProgressColor="@color/color_bar_deeper" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<LinearLayout
android:layout_width="65dp"
android:layout_height="match_parent"
android:gravity="center"
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_width="65dp"
android:layout_height="match_parent"
android:layout_weight="4"
android:gravity="center"
android:orientation="vertical">
android:orientation="horizontal">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/ic_weight" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/ic_height" />
<TextView
android:layout_width="wrap_content"
android:layout_height="10dp"
android:text="身高"
android:textColor="@color/colorPrimary"
android:textSize="8sp" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="8dp"
android:layout_height="8dp"
android:background="@color/color_bar_self" />
<TextView
android:layout_width="wrap_content"
android:layout_height="8dp"
android:text="@string/self_information"
android:textSize="5sp" />
<TextView
android:layout_width="8dp"
android:layout_height="8dp"
android:background="@color/color_bar_deeper" />
<TextView
android:layout_width="wrap_content"
android:layout_height="8dp"
android:text="@string/average_information"
android:textSize="5sp" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="10dp"
android:text="体重"
android:textColor="@color/colorPrimary"
android:textSize="8sp" />
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.5" />
</LinearLayout>
<com.akexorcist.roundcornerprogressbar.RoundCornerProgressBar
android:id="@+id/height_bar"
android:layout_width="145dp"
android:layout_height="36dp"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_marginTop="3dp"
app:rcBackgroundColor="@color/color_bar_background"
app:rcBackgroundPadding="5dp"
app:rcProgressColor="@color/color_bar_self"
app:rcRadius="10dp"
app:rcReverse="false"
app:rcSecondaryProgressColor="@color/color_bar_deeper" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_width="65dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:gravity="center"
android:orientation="vertical">
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/ic_weight" />
<TextView
android:layout_width="wrap_content"
android:layout_height="10dp"
android:text="体重"
android:textColor="@color/colorPrimary"
android:textSize="8sp" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="8dp"
android:layout_height="8dp"
android:background="@color/color_bar_self" />
<TextView
android:layout_width="wrap_content"
android:layout_height="8dp"
android:text="@string/self_information"
android:textSize="5sp" />
<TextView
android:layout_width="8dp"
android:layout_height="8dp"
android:background="@color/color_bar_deeper" />
<TextView
android:layout_width="wrap_content"
android:layout_height="8dp"
android:text="@string/average_information"
android:textSize="5sp" />
</LinearLayout>
<TextView
android:layout_width="8dp"
android:layout_height="8dp"
android:background="@color/color_bar_self" />
<TextView
android:layout_width="wrap_content"
android:layout_height="8dp"
android:text="@string/self_information"
android:textSize="5sp" />
<TextView
android:layout_width="8dp"
android:layout_height="8dp"
android:background="@color/color_bar_deeper" />
<TextView
android:layout_width="wrap_content"
android:layout_height="8dp"
android:text="@string/standrad_information"
android:textSize="5sp" />
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.5" />
</LinearLayout>
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.5" />
</LinearLayout>
<com.akexorcist.roundcornerprogressbar.RoundCornerProgressBar
android:id="@+id/weight_bar"
android:layout_width="145dp"
android:layout_height="36dp"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_marginTop="3dp"
app:rcBackgroundColor="@color/color_bar_background"
app:rcBackgroundPadding="5dp"
app:rcProgressColor="@color/color_bar_self"
app:rcRadius="10dp"
app:rcReverse="false"
app:rcSecondaryProgressColor="@color/color_bar_deeper" />
<com.akexorcist.roundcornerprogressbar.RoundCornerProgressBar
android:layout_width="145dp"
android:layout_height="36dp"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_marginTop="3dp"
app:rcBackgroundColor="@color/color_bar_background"
app:rcBackgroundPadding="5dp"
app:rcMax="100"
app:rcProgress="32.6"
app:rcProgressColor="@color/color_bar_self"
app:rcRadius="10dp"
app:rcReverse="false"
app:rcSecondaryProgress="56.1"
app:rcSecondaryProgressColor="@color/color_bar_deeper" />
</RelativeLayout>
</RelativeLayout>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</ScrollView>
</LinearLayout>

View File

@@ -0,0 +1,136 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp"
android:layout_height="500dp"
android:layout_gravity="center"
android:background="#faecec"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="30dp"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/occupation_image_view"
android:layout_width="65dp"
android:layout_height="65dp"
android:src="@drawable/ic_occupation" />
<TextView
android:id="@+id/occupation_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="职业"
android:textSize="15sp" />
</LinearLayout>
<LinearLayout
android:layout_width="250dp"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<ImageView
android:id="@+id/age_image_view"
android:layout_width="65dp"
android:layout_height="65dp"
android:src="@drawable/ic_dialog_age" />
<TextView
android:layout_width="55dp"
android:layout_height="2dp" />
<ImageView
android:id="@+id/sex_image_view"
android:layout_width="65dp"
android:layout_height="65dp"
android:src="@drawable/ic_dialog_sex" />
</LinearLayout>
<LinearLayout
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<TextView
android:id="@+id/age_text_view"
android:layout_width="125dp"
android:layout_height="wrap_content"
android:gravity="center"
android:text="年龄"
android:textSize="15sp" />
<TextView
android:id="@+id/sex_text_view"
android:layout_width="125dp"
android:layout_height="wrap_content"
android:gravity="center"
android:text="性别"
android:textSize="15sp" />
</LinearLayout>
<TextView
android:layout_width="2dp"
android:layout_height="30dp" />
<LinearLayout
android:layout_width="250dp"
android:layout_height="65dp"
android:gravity="center"
android:orientation="horizontal">
<ImageView
android:id="@+id/height_image_view"
android:layout_width="65dp"
android:layout_height="65dp"
android:src="@drawable/ic_dialog_height" />
<TextView
android:layout_width="55dp"
android:layout_height="2dp" />
<ImageView
android:id="@+id/weight_image_view"
android:layout_width="65dp"
android:layout_height="65dp"
android:src="@drawable/ic_dialog_weight" />
</LinearLayout>
<LinearLayout
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<TextView
android:id="@+id/height_text_view"
android:layout_width="125dp"
android:layout_height="wrap_content"
android:gravity="center"
android:text="身高"
android:textSize="15sp" />
<TextView
android:id="@+id/weight_text_view"
android:layout_width="125dp"
android:layout_height="wrap_content"
android:gravity="center"
android:text="体重"
android:textSize="15sp" />
</LinearLayout>
<Button
android:id="@+id/ok_button"
android:layout_width="200dp"
android:layout_height="35dp"
android:layout_marginTop="30dp"
android:background="#efe7e7"
android:text="确定" />
</LinearLayout>

View File

@@ -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">

View File

@@ -16,7 +16,7 @@
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="9">
android:layout_weight="14">
<FrameLayout
android:id="@+id/camera_preview"
@@ -38,9 +38,9 @@
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1.2"
android:alpha="0.4"
android:background="#8A000000">
android:layout_weight="2"
android:alpha="0.2"
android:background="#8a515050">
<ImageView
android:id="@+id/more_take_photo_button_capture"
@@ -67,7 +67,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.3"
android:background="@color/place_holder"
android:background="#e6e6e6"
android:visibility="invisible">
<ProgressBar

View File

@@ -1,8 +1,23 @@
<resources>
<string name="app_name">NutritionMaster</string>
<string name="self_information">当前值</string>
<string name="average_information">全国均值</string>
<string name="standrad_information">标准值</string>
<string name="pig">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</string>
<string name="food_meterial_title">食材识别</string>
<string name="food_title">菜品识别</string>
<string name="title_activity_login">登录</string>
<!-- Strings related to login -->
<string name="prompt_email">Email</string>
<string name="prompt_password">Password (optional)</string>
<string name="action_sign_in">Sign in or register</string>
<string name="action_sign_in_short">Sign in</string>
<string name="error_invalid_email">This email address is invalid</string>
<string name="error_invalid_password">This password is too short</string>
<string name="error_incorrect_password">This password is incorrect</string>
<string name="error_field_required">This field is required</string>
<string name="permission_rationale">"Contacts permissions are needed for providing email
completions."
</string>
</resources>

View File

@@ -25,6 +25,7 @@ allprojects {
google()
jcenter()
maven { url 'https://jitpack.io' }
maven { url 'https://bintray.com/rameshbhupathi/maven' }
}
}

44
datas/11111.csv Normal file
View File

@@ -0,0 +1,44 @@
occupation,classification,,,,,
教师,"肺调养食谱,咳喘食谱,益智补脑食谱,清热去火食谱,健忘食谱,咽炎食谱",,,,,
记者,"健忘食谱,益智补脑食谱,咽炎食谱,失眠食谱",,,,,
演员,"减肥菜谱,美容菜谱,延缓衰老食谱,气血双补食谱,乌发食谱,丰胸食谱,补虚养身食谱",,,,,
厨师,"高温环境作业人群食谱,肺调养食谱",,,,,
医生,"益智补脑食谱,健忘食谱,防癌抗癌食谱",,,,,
护士,"接触电离辐射人员食谱,益智补脑食谱,防癌抗癌食谱,滋阴食谱,补虚养身食谱",,,,,
司机,"痔疮食谱,明目食谱,关节炎食谱",,,,,
军人,"跌打骨折食谱,运动员食谱,健脾开胃食谱,防暑食谱",,,,,
律师,"益智补脑食谱,健忘食谱,失眠食谱,健脾开胃食谱",,,,,
翻译,"肾调养食谱,补虚养身食谱,气血双补食谱,益智补脑食谱,失眠食谱,头痛食谱",,,,,
法官,"益智补脑食谱,高血压食谱,神经衰弱食谱,心悸食谱,乌发食谱,头痛食谱",,,,,
保安,"冻疮食谱,营养不良食谱,壮腰健肾食谱,防暑食谱,气血双补食谱",,,,,
花匠,"接触化学毒素人员食谱,清热解毒食谱,气血双补食谱,防暑食谱,骨质增生食谱",,,,,
清洁工,"脾调养食谱,肝调养食谱,补虚养身食谱,气血双补食谱,理气调理食谱",,,,,
理发师,"营养不良食谱,肝调养食谱,肾调养食谱,乌发食谱,健脾开胃",,,,,
消防员,"神经衰弱食谱,高血压食谱,明目食谱,活血化瘀食谱,气血双补食谱",,,,,
推销员,"脾调养食谱,高血压食谱,气血双补食谱,肝调养食谱,头痛食谱",,,,,
运动员,"不孕不育食谱,健脾开胃食谱,增肥食谱,关节炎食谱,运动员食谱,跌打骨折食谱",,,,,
机长,"低温环境作业人群食谱,神经衰弱食谱,明目食谱,失眠食谱,心调养食谱",,,,,
空姐,"滋阴食谱,美容菜谱,咳喘食谱,气血双补食谱,理气调理食谱",,,,,
画师,"明目食谱,补虚养身食谱,活血化瘀食谱,益智补脑食谱,日本料理",,,,,
动漫设计,"日本料理,健脾开胃食谱,神经衰弱食谱,明目食谱,益智补脑食谱",,,,,
白领,"益智补脑食谱,健忘食谱,失眠食谱,心调养食谱,头痛食谱,解酒食谱",,,,,
前台,"家常菜谱,壮腰健肾食谱,美容菜谱,咳喘食谱,心调养食谱",,,,,
学生,"青少年食谱,健脾开胃食谱,明目食谱,健忘食谱",,,,,
商人,"肾调养食谱,肝调养食谱,肝硬化食谱,解酒食谱,美味粥汤",,,,,
会计,"明目食谱,益智补脑食谱,精品主食,美味粥汤,关节炎食谱",,,,,
程序员,"神经衰弱食谱,益智补脑食谱,健忘食谱,乌发食谱,失眠食谱",,,,,
服务员,"健忘食谱,耳鸣食谱,明目食谱,理气调理食谱,咽炎食谱,",,,,,
作家,"明目食谱,骨质增生食谱,神经衰弱食谱,益智补脑食谱,健忘食谱",,,,,
模特,"美容菜谱,减肥菜谱,延缓衰老食谱,丰胸食谱,乌发食谱",,,,,
导游,"益智补脑食谱,健忘食谱,咽炎食谱,高血压食谱,补气食谱",,,,,
歌手,"咽炎食谱,健忘食谱,补气食谱,减肥菜谱,清热去火食谱,理气调理食谱",,,,,
裁缝,"壮腰健肾食谱,明目食谱,脚气食谱,关节炎食谱,健脾开胃食谱",,,,,
快递员,"皮肤病食谱,壮腰健肾食谱,防暑食谱,关节炎食谱,跌打骨折食谱",,,,,
外卖员,"皮肤病食谱,防暑食谱,胃调养食谱,跌打骨折食谱,壮腰健肾食谱",,,,,
主持人,"咽炎食谱,关节炎食谱,壮腰健肾食谱,明目食谱,防癌抗癌食谱",,,,,
漫画家,"壮腰健肾食谱,皮肤病食谱,明目食谱,减肥菜谱,前列腺疾病食谱",,,,,
面点师,"关节炎食谱,肺调养食谱,壮腰健肾食谱,支气管炎食谱,皮肤病食谱",,,,,
美甲师,"关节炎食谱,明目食谱,皮肤病食谱,防癌抗癌食谱,肺调养食谱",,,,,
保姆,"关节炎食谱,壮腰健肾食谱,明目食谱,感冒食谱,气血双补食谱",,,,,
电力工程师,"接触电离辐射人员食谱,防癌抗癌食谱,明目食谱,关节炎食谱,壮腰健肾食谱",,,,,
化验员,"明目食谱,防癌抗癌食谱,感冒食谱,皮肤病食谱,肺调养食谱",,,,,
1 occupation classification
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 化验员 明目食谱,防癌抗癌食谱,感冒食谱,皮肤病食谱,肺调养食谱

View File

@@ -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,法国菜谱
1 classification
2 0 川菜
3 1 老人食谱
4 2 不孕不育食谱
5 3 肾调养食谱
6 4 家常菜谱
7 5 青少年食谱
8 6 补阳食谱
9 7 阳痿早泄食谱
10 8 低温环境作业人群食谱
11 9 糖尿病食谱
12 10 脾调养食谱
13 11 结核病食谱
14 12 私家菜
15 13 骨质疏松食谱
16 14 营养不良食谱
17 15 便秘食谱
18 16 壮腰健肾食谱
19 17 接触化学毒素人员食谱
20 18 高血压食谱
21 19 健脾开胃食谱
22 20 京菜
23 21 学龄期儿童食谱
24 22 肝调养食谱
25 23 神经衰弱食谱
26 24 肾炎食谱
27 25 月经不调食谱
28 26 滋阴食谱
29 27 小儿遗尿食谱
30 28 清热解毒食谱
31 29 明目食谱
32 30 补血食谱
33 31 补虚养身食谱
34 32 夜尿多食谱
35 33 自汗盗汗食谱
36 34 补气食谱
37 35 中风食谱
38 36 高脂血症食谱
39 37 动脉硬化食谱
40 38 甲状腺疾病食谱
41 39 冠心病食谱
42 40 防癌抗癌食谱
43 41 沪菜
44 42 美容菜谱
45 43 咳喘食谱
46 44 减肥菜谱
47 45 精品主食
48 46 贫血食谱
49 47 心悸食谱
50 48 活血化瘀食谱
51 49 孕妇菜谱
52 50 肝炎食谱
53 51 胃调养食谱
54 52 延缓衰老食谱
55 53 气血双补食谱
56 54 防暑食谱
57 55 乳母食谱
58 56 咽炎食谱
59 57 益智补脑食谱
60 58 健忘食谱
61 59 乌发食谱
62 60 清热去火食谱
63 61 理气调理食谱
64 62 通乳食谱
65 63 更年期食谱
66 64 耳鸣食谱
67 65 产后调理食谱
68 66 鲁菜
69 67 清真菜
70 68 水肿食谱
71 69 术后食谱
72 70 湖北菜
73 71 甜品/点心
74 72 腹泻调理食谱
75 73 豫菜
76 74 东北菜
77 75 消化不良食谱
78 76 失眠食谱
79 77 肺调养食谱
80 78 浙菜
81 79 增肥食谱
82 80 湘菜
83 81 卤酱菜
84 82 止血调理食谱
85 83 冻疮食谱
86 84 利尿食谱
87 85 药膳偏方
88 86 心调养食谱
89 87 粤菜
90 88 肢寒畏冷食谱
91 89 幼儿菜谱
92 90 痔疮食谱
93 91 痛经食谱
94 92 西北菜
95 93 素斋菜
96 94 胃炎食谱
97 95 尿路结石食谱
98 96 微波菜谱
99 97 肠炎食谱
100 98 哮喘食谱
101 99 头痛食谱
102 100 祛痰食谱
103 101 痛风食谱
104 102 脚气食谱
105 103 婴儿食谱
106 104 年夜饭
107 105 口腔溃疡食谱
108 106 丰胸食谱
109 107 山西菜
110 108 江西菜
111 109 学龄前儿童食谱
112 110 关节炎食谱
113 111 苏菜
114 112 子宫脱垂食谱
115 113 祛痱食谱
116 114 感冒食谱
117 115 胆石症食谱
118 116 痢疾食谱
119 117 肝硬化食谱
120 118 呕吐调理食谱
121 119 前列腺疾病食谱
122 120 云贵菜
123 121 解酒食谱
124 122 高温环境作业人群食谱
125 123 消化性溃疡食谱
126 124 腮腺炎食谱
127 125 小儿营养不良食谱
128 126 保胎食谱
129 127 其他国家
130 128 闽菜
131 129 癫痫食谱
132 130 鼻炎食谱
133 131 美味粥汤
134 132 跌打骨折食谱
135 133 运动员食谱
136 134 皮肤病食谱
137 135 围孕期食谱
138 136 产妇菜谱
139 137 时尚饮品
140 138 清爽凉菜
141 139 美味糕点
142 140 韩国料理
143 141 意大利餐
144 142 麻疹食谱
145 143 接触电离辐射人员食谱
146 144 支气管炎食谱
147 145 日本料理
148 146 克山病食谱
149 147 肺气肿食谱
150 148 港台菜
151 149 其他菜系
152 150 骨质增生食谱
153 151 疟疾食谱
154 152 徽菜
155 153 火锅食谱
156 154 法国菜谱

View File

@@ -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,法国菜谱
1 classification
2 0 川菜
3 1 老人食谱
4 2 不孕不育食谱
5 3 肾调养食谱
6 4 家常菜谱
7 5 青少年食谱
8 6 补阳食谱
9 7 阳痿早泄食谱
10 8 低温环境作业人群食谱
11 9 糖尿病食谱
12 10 脾调养食谱
13 11 结核病食谱
14 12 私家菜
15 13 骨质疏松食谱
16 14 营养不良食谱
17 15 便秘食谱
18 16 壮腰健肾食谱
19 17 接触化学毒素人员食谱
20 18 高血压食谱
21 19 健脾开胃食谱
22 20 京菜
23 21 学龄期儿童食谱
24 22 肝调养食谱
25 23 神经衰弱食谱
26 24 肾炎食谱
27 25 月经不调食谱
28 26 滋阴食谱
29 27 小儿遗尿食谱
30 28 清热解毒食谱
31 29 明目食谱
32 30 补血食谱
33 31 补虚养身食谱
34 32 夜尿多食谱
35 33 自汗盗汗食谱
36 34 补气食谱
37 35 中风食谱
38 36 高脂血症食谱
39 37 动脉硬化食谱
40 38 甲状腺疾病食谱
41 39 冠心病食谱
42 40 防癌抗癌食谱
43 41 沪菜
44 42 美容菜谱
45 43 咳喘食谱
46 44 减肥菜谱
47 45 精品主食
48 46 贫血食谱
49 47 心悸食谱
50 48 活血化瘀食谱
51 49 孕妇菜谱
52 50 肝炎食谱
53 51 胃调养食谱
54 52 延缓衰老食谱
55 53 气血双补食谱
56 54 防暑食谱
57 55 乳母食谱
58 56 咽炎食谱
59 57 益智补脑食谱
60 58 健忘食谱
61 59 乌发食谱
62 60 清热去火食谱
63 61 理气调理食谱
64 62 通乳食谱
65 63 更年期食谱
66 64 耳鸣食谱
67 65 产后调理食谱
68 66 鲁菜
69 67 清真菜
70 68 水肿食谱
71 69 术后食谱
72 70 湖北菜
73 71 甜品/点心
74 72 腹泻调理食谱
75 73 豫菜
76 74 东北菜
77 75 消化不良食谱
78 76 失眠食谱
79 77 肺调养食谱
80 78 浙菜
81 79 增肥食谱
82 80 湘菜
83 81 卤酱菜
84 82 止血调理食谱
85 83 冻疮食谱
86 84 利尿食谱
87 85 药膳偏方
88 86 心调养食谱
89 87 粤菜
90 88 肢寒畏冷食谱
91 89 幼儿菜谱
92 90 痔疮食谱
93 91 痛经食谱
94 92 西北菜
95 93 素斋菜
96 94 胃炎食谱
97 95 尿路结石食谱
98 96 微波菜谱
99 97 肠炎食谱
100 98 哮喘食谱
101 99 头痛食谱
102 100 祛痰食谱
103 101 痛风食谱
104 102 脚气食谱
105 103 婴儿食谱
106 104 年夜饭
107 105 口腔溃疡食谱
108 106 丰胸食谱
109 107 山西菜
110 108 江西菜
111 109 学龄前儿童食谱
112 110 关节炎食谱
113 111 苏菜
114 112 子宫脱垂食谱
115 113 祛痱食谱
116 114 感冒食谱
117 115 胆石症食谱
118 116 痢疾食谱
119 117 肝硬化食谱
120 118 呕吐调理食谱
121 119 前列腺疾病食谱
122 120 云贵菜
123 121 解酒食谱
124 122 高温环境作业人群食谱
125 123 消化性溃疡食谱
126 124 腮腺炎食谱
127 125 小儿营养不良食谱
128 126 保胎食谱
129 127 其他国家
130 128 闽菜
131 129 癫痫食谱
132 130 鼻炎食谱
133 131 美味粥汤
134 132 跌打骨折食谱
135 133 运动员食谱
136 134 皮肤病食谱
137 135 围孕期食谱
138 136 产妇菜谱
139 137 时尚饮品
140 138 清爽凉菜
141 139 美味糕点
142 140 韩国料理
143 141 意大利餐
144 142 麻疹食谱
145 143 接触电离辐射人员食谱
146 144 支气管炎食谱
147 145 日本料理
148 146 克山病食谱
149 147 肺气肿食谱
150 148 港台菜
151 149 其他菜系
152 150 骨质增生食谱
153 151 疟疾食谱
154 152 徽菜
155 153 火锅食谱
156 154 法国菜谱

Binary file not shown.
Can't render this file because it contains an unexpected character in line 2 and column 280.

BIN
datas/physique (1).xlsx Normal file

Binary file not shown.

44
datas/元素效果.txt Normal file
View File

@@ -0,0 +1,44 @@
6、维生素 A 成长
7、维生素 B1 水肿、麻木
8、维生素 B2 角膜炎、口角炎、皮肤炎、眼睛畏光
b6:消化与吸收
13、维生素 C 坏血病、牙质疏松、伤口复原缓慢。
15、维生素 E :保持血管健康、预防癌症,防止细胞氧化、治疗不孕等作用。
β-胡萝卜素。保持皮肤、头发及牙龈健康、维持视力正常、使免疫力正常、帮助骨骼生长、促进成长
胆固醇 :合成激素
22、镁 Mg 量饮酒
  为构成骨骼及牙齿之主要成分
  缺乏的危害:缺乏镁会使神经受到干扰
19、钙 Ca 为构成骨骼和牙齿的主要成分.
26、铁 Fe血液的主要成份制造血红蛋白。对孩童成长及抵抗疾病亦非常重要防止贫血 缺乏的危害:贫血、疲倦、抵抗力降低、发育不良等。
30、锌 Zn 帮助新皮肤生长、细胞再生、强化免疫力。又称为壮阳矿物质,对前列腺的功能、生殖器官的发育有帮助
27、铜 Cu缺乏的危害会影响骨骼间的缔结组织、贫血。
29、锰 Mn 缺乏的危害:影响骨骼形成、降低性荷尔蒙的合成及怀孕能力、性功能衰退。
21、钾 K 缺乏的危害:高血压、容易中暑、疲劳。(爱喝咖啡、酒及嗜吃甜食者易缺乏。)
20、磷 P 缺乏的危害:骨骼、发育不良、关节炎、肥胖、神经过敏、疲劳、食欲不振。
23、钠 Na
  有助血压、神经、肌肉的正常运作。
  缺乏的危害:缺乏钠会引致昏睡、低血糖、心悸等症状、血压高。
时间!(季节!)
主要的元素!有讲的才行
  

35
datas/病).csv Normal file
View File

@@ -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
1 热量(大卡) 碳水化合物(克) 脂肪(克) 蛋白质(克) 纤维素(克) 维生素A(微克) 维生素B1(微克)(硫铵素) 维生素B2(微克)(核黄素) 维生素B6(微克) 维生素C(微克) 维生素E(毫克) 胡萝卜素(微克) 胆固醇(毫克) 镁(毫克) 钙(毫克)
2 老人食谱 1.1 0 0 0 15 0 0 0 0 100 0 0 0 0 0 0 0 1 0 1000 500 1000 0
3 青少年食谱 1.1 0 0 0 0 500 0 0 1500 0 0 2000 100 0 700 7 7 0 2 0 500 0 0
4 补阳食谱 1.1 0 0 0 0 0 0 0 0 0 10 1500 100 0 0 0 10 0 2 0 0 0 0
5 糖尿病食谱 1.1 -1 0 0 15 0 0 0 1500 0 0 0 0 0 0 0 0 0 0 0 0 500 0
6 骨质疏松食谱 1.1 0 0 0 0 0 0 0 0 100 0 1500 0 100 1000 5 0 2 2 0 500 0 0
7 营养不良食谱 1.1 0 0 0 0 500 0 0 1500 0 5 2000 100 0 500 5 10 0 2 0 500 0 0
8 便秘食谱 1.1 0 0 0 15 0 0 0 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9 壮腰健肾食谱 1.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 0 1 0 0 0 0
10 高血压食谱 1.1 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 1000 0 700 0
11 健脾开胃食谱 1.1 0 0 0 10 0 0 0 1500 0 0 0 0 0 0 0 0 0 0 0 0 0 0
12 学龄期儿童食谱 1.1 0 0 0 0 500 0 0 1000 50 0 2000 100 50 1000 0 10 0 2 0 400 0 0
13 神经衰弱食谱 1.1 0 0 0 0 0 0 0 0 0 0 0 50 0 0 0 0 0 0 1000 600 700 0
14 月经不调食谱 1.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0
15 清热解毒食谱 1.1 0 0 0 10 0 0 500 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0
16 高脂血症食谱 1.1 0 0 0 10 0 0 0 0 0 3 0 0 0 0 0 0 0 0 1000 0 0 0
17 防癌抗癌食谱 1.1 0 0 0 0 0 0 0 0 0 10 1000 0 0 0 0 5 0 0 0 0 0 0
18 咳喘食谱 1.1 0 0 0 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19 贫血食谱 1.1 0 0 0 0 0 0 0 0 0 3 0 0 0 0 10 0 2 0 0 0 0 0
20 活血化瘀食谱 1.1 0 0 0 15 0 500 0 0 50 3 0 0 0 0 7 0 1 0 0 0 0 0
21 孕妇菜谱 1.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22 炎症食谱 1.1 0 0 0 0 0 200 700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23 胃调养食谱 1.1 0 0 0 0 0 0 0 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24 防暑食谱 1.1 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 0 0 0
25 健忘食谱 1.1 0 0 0 0 0 0 0 0 0 0 500 0 0 0 0 0 0 0 0 0 0 0
26 乌发食谱 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
27 产后调理食谱 1.1 0 0 0 0 300 0 0 0 20 0 0 0 0 0 0 5 0 0 0 0 0 0
28 水肿食谱 1.1 0 0 0 0 0 700 450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
29 术后食谱 1.1 0 0 0 0 200 400 400 0 50 0 700 0 50 500 0 5 1 0 0 400 0 0
30 失眠食谱 1.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
31 口腔溃疡食谱 1.1 0 0 0 0 0 0 500 0 50 0 0 0 0 0 0 6 0 0 0 0 0 0
32 感冒食谱 1.1 0 0 0 0 0 0 0 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0
33 前列腺疾病食谱 1.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 1 0 0 0 0
34 解酒食谱 1.1 0 0 0 0 0 0 0 1000 0 0 0 0 200 0 0 3 0 0 0 0 0 0
35 减肥菜谱 1.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 0

Binary file not shown.

BIN
datas/职业.xlsx Normal file

Binary file not shown.

3
datas/营养.txt Normal file
View File

@@ -0,0 +1,3 @@
脂肪:每日脂肪的摄取量不宜超过总热量的 25~30%。女性摄取 55~65 克,男性每日不宜超过 90 克。
膳食纤维:每日需求量 20~30 克。以每100大卡摄取10 克的膳食纤维为标准,应慢慢增加份量
青春期到 25 岁,男性每日应摄取 800 毫克女性则为700毫克到 25 岁以上,建议每日摄取量应达 600 毫克。孕妇或授乳中女性,每日所需钙质皆为 1000 毫克。为构成骨骼和牙齿的主要成分.

BIN
datas/营养标准.xlsx Normal file

Binary file not shown.