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

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