From efac56b1979c6df0915cd97dd41293aa9ae3fd60 Mon Sep 17 00:00:00 2001 From: ScorpioMiku <1056992492@qq.com> Date: Sun, 9 Sep 2018 21:55:05 +0800 Subject: [PATCH] 1 --- .../nutritionmaster/adapter/MenuAdapter.java | 41 ++++ .../nutritionmaster/adapter/MenuHolder.java | 27 +++ .../nutritionmaster/modules/MainActivity.java | 20 +- .../RecipeActivity/RecipeActivity.java | 57 +++++- .../nutritionmaster/utils/UiUtils.java | 40 ++++ app/src/main/res/layout/activity_main.xml | 122 +++++------- app/src/main/res/layout/activity_recipe.xml | 126 +++++++++++- .../res/layout/layout_menu_detail_title.xml | 82 ++++++++ .../main/res/layout/layout_menu_head_info.xml | 183 ++++++++++++++++++ app/src/main/res/layout/menu_item.xml | 12 ++ 10 files changed, 625 insertions(+), 85 deletions(-) create mode 100644 app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MenuAdapter.java create mode 100644 app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MenuHolder.java create mode 100644 app/src/main/java/com/example/ninefourone/nutritionmaster/utils/UiUtils.java create mode 100644 app/src/main/res/layout/layout_menu_detail_title.xml create mode 100644 app/src/main/res/layout/layout_menu_head_info.xml create mode 100644 app/src/main/res/layout/menu_item.xml diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MenuAdapter.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MenuAdapter.java new file mode 100644 index 0000000..85c4728 --- /dev/null +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MenuAdapter.java @@ -0,0 +1,41 @@ +package com.example.ninefourone.nutritionmaster.adapter; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.example.ninefourone.nutritionmaster.R; + +import java.util.ArrayList; + +/** + * Created by ScorpioMiku on 2018/9/9. + */ + +public class MenuAdapter extends RecyclerView.Adapter { + private ArrayList mList; + private Context mContext; + + public MenuAdapter(ArrayList mList, Context mContext) { + this.mList = mList; + this.mContext = mContext; + } + + @Override + public MenuHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(mContext).inflate(R.layout.menu_item, parent, false); + return new MenuHolder(view); + } + + @Override + public void onBindViewHolder(MenuHolder holder, int position) { + holder.bindView(mList.get(position)); + } + + @Override + public int getItemCount() { + return mList.size(); + } +} diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MenuHolder.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MenuHolder.java new file mode 100644 index 0000000..b1538b3 --- /dev/null +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MenuHolder.java @@ -0,0 +1,27 @@ +package com.example.ninefourone.nutritionmaster.adapter; + +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.TextView; + +import com.example.ninefourone.nutritionmaster.R; + +import butterknife.BindView; + +/** + * Created by ScorpioMiku on 2018/9/9. + */ + +public class MenuHolder extends RecyclerView.ViewHolder { + @BindView(R.id.text) + TextView textView; + + public MenuHolder(View itemView) { + super(itemView); + + } + + public void bindView(String text) { + textView.setText(text); + } +} diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java index 78fc03a..22c45e4 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java @@ -2,10 +2,12 @@ package com.example.ninefourone.nutritionmaster.modules; import android.annotation.SuppressLint; import android.content.Intent; +import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.RequiresApi; +import android.support.design.widget.AppBarLayout; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; @@ -62,20 +64,13 @@ public class MainActivity extends BaseActivity { NoScrollViewPager viewPager; @BindView(R.id.sliding_tab_layout) SlidingTabLayout slidingTabLayout; - @BindView(R.id.bar_cover) - FrameLayout barCover; @BindView(R.id.cb_rating_bar) CBRatingBar cbRatingBar; @BindView(R.id.toolbar_user_avatar) CircularImageView toolbarUserAvatar; @BindView(R.id.drawer_user_avatar) CircularImageView drawerUserAvatar; - // @BindView(R.id.spiderWeb_mainActivity) -// SpiderWebScoreView spiderWebMainActivity; -// @BindView(R.id.layout_mainActivity_circular) -// CircularLayout layoutMainActivityCircular; - // @BindView(R.id.search_button) -// ImageView searchButton; + @BindView(R.id.search_view) MaterialSearchView searchView; @BindView(R.id.tool_bar) @@ -88,6 +83,8 @@ public class MainActivity extends BaseActivity { ImageView addInformationButton; @BindView(R.id.information_layout) LinearLayout informationLayout; + @BindView(R.id.title_layout) + AppBarLayout titleLayout; @Override @@ -99,14 +96,16 @@ public class MainActivity extends BaseActivity { public void initViews(Bundle savedInstanceState) { mDrawer.setTouchMode(ElasticDrawer.TOUCH_MODE_BEZEL); mDrawer.setOnDrawerStateChangeListener(new ElasticDrawer.OnDrawerStateChangeListener() { + @RequiresApi(api = Build.VERSION_CODES.M) @SuppressLint("ResourceAsColor") @Override public void onDrawerStateChange(int oldState, int newState) { if (newState == ElasticDrawer.STATE_CLOSED) { - barCover.setVisibility(View.INVISIBLE); + titleLayout.setBackgroundColor(getColor(R.color.colorPrimary)); } else { - barCover.setVisibility(View.VISIBLE); + titleLayout.setBackgroundColor(getColor(R.color.bar_open)); } + } @Override @@ -154,6 +153,7 @@ public class MainActivity extends BaseActivity { ButterKnife.bind(this); Logger.d("oncreate"); setSupportActionBar(toolBar); + getSupportActionBar().setDisplayShowTitleEnabled(false); askPermission(); } diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/RecipeActivity/RecipeActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/RecipeActivity/RecipeActivity.java index a4bf4b9..0f71cd0 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/RecipeActivity/RecipeActivity.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/RecipeActivity/RecipeActivity.java @@ -1,20 +1,43 @@ package com.example.ninefourone.nutritionmaster.modules.RecipeActivity; import android.content.Intent; -import android.support.v7.app.AppCompatActivity; +import android.graphics.Color; import android.os.Bundle; +import android.support.v4.widget.NestedScrollView; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.widget.LinearLayout; +import android.widget.TextView; import com.example.ninefourone.nutritionmaster.R; +import com.example.ninefourone.nutritionmaster.adapter.MenuAdapter; import com.example.ninefourone.nutritionmaster.base.BaseActivity; import com.example.ninefourone.nutritionmaster.bean.Menu; import com.example.ninefourone.nutritionmaster.bean.RecommendFood; +import com.example.ninefourone.nutritionmaster.utils.UiUtils; import com.orhanobut.logger.Logger; +import java.util.ArrayList; + +import butterknife.BindView; + public class RecipeActivity extends BaseActivity { + @BindView(R.id.recipe_list) + RecyclerView recipeList; + @BindView(R.id.nested_scorll_view) + NestedScrollView nestedScorllView; + @BindView(R.id.tv_title) + TextView tvTitle; + @BindView(R.id.tv_subTitle) + TextView tvSubTitle; + @BindView(R.id.ll_title) + LinearLayout llTitle; private RecommendFood recommendFood; private Menu menu; + private ArrayList menuList = new ArrayList<>(); + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -27,9 +50,27 @@ public class RecipeActivity extends BaseActivity { @Override public void initViews(Bundle savedInstanceState) { + + final int changedHeight = UiUtils.dp2px(this, 214); + nestedScorllView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() { + @Override + public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) { + + float scale = (float) v.getScrollY() / changedHeight; + //变化范围0-255 表示从透明到纯色背景 + float alpha = scale * 255 >= 255 ? 255 : scale * 255; + + llTitle.setBackgroundColor(Color.argb((int) alpha, 212, 62, 55)); + tvTitle.setTextColor(Color.argb((int) alpha, 255, 255, 255)); + tvSubTitle.setTextColor(Color.argb((int) alpha, 255, 255, 255)); + + } + }); + Intent intent = getIntent(); recommendFood = (RecommendFood) intent.getSerializableExtra("SEND_OBJECT"); Logger.d(recommendFood.getItemType()); + initList(); } @Override @@ -41,4 +82,18 @@ public class RecipeActivity extends BaseActivity { public void onPointerCaptureChanged(boolean hasCapture) { } + + private void initList() { + for (int i = 0; i < 10; i++) { + menuList.add("1"); + } + } + + @Override + public void initRecyclerView() { + super.initRecyclerView(); + MenuAdapter adapter = new MenuAdapter(menuList, this); + recipeList.setAdapter(adapter); + recipeList.setLayoutManager(new LinearLayoutManager(this)); + } } diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/UiUtils.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/UiUtils.java new file mode 100644 index 0000000..6bbcffb --- /dev/null +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/UiUtils.java @@ -0,0 +1,40 @@ +package com.example.ninefourone.nutritionmaster.utils; + +import android.content.Context; +import android.util.DisplayMetrics; + + +public class UiUtils { + + + /** + * 动态获取屏幕的宽度 + * @param context context + * @return + */ + public static int getDeviceWidth(Context context){ + DisplayMetrics metrics = context.getResources().getDisplayMetrics(); + return metrics.widthPixels; + } + + /** + * 动态获取屏幕的高度 + * @param context context + * @return + */ + public static int getDeviceHeight(Context context){ + DisplayMetrics metrics = context.getResources().getDisplayMetrics(); + return metrics.heightPixels; + } + + /** + * 将dp转为px + * @param context context + * @param dpValue dp值 + * @return + */ + public static int dp2px(Context context, float dpValue){ + float scale = context.getResources().getDisplayMetrics().density; + return (int)(dpValue * scale +0.5f); + } +} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 2c6464c..5d1a634 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -21,90 +21,70 @@ android:layout_height="match_parent"> + android:layout_height="110dp"> - + android:layout_height="?attr/actionBarSize" + android:scaleType="fitXY" + app:contentInsetStart="0dp" + app:layout_scrollFlags="scroll|enterAlways" + app:popupTheme="@style/AppTheme"> - - - - - - - - - + android:id="@+id/navigation_layout" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:orientation="horizontal"> - + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/ic_drawer_home" /> - + - + - - - - - - - - - - + + + + + + + + - + android:clipToPadding="false" + android:fitsSystemWindows="true"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - diff --git a/app/src/main/res/layout/layout_menu_detail_title.xml b/app/src/main/res/layout/layout_menu_detail_title.xml new file mode 100644 index 0000000..d23faac --- /dev/null +++ b/app/src/main/res/layout/layout_menu_detail_title.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/layout_menu_head_info.xml b/app/src/main/res/layout/layout_menu_head_info.xml new file mode 100644 index 0000000..28d4d1c --- /dev/null +++ b/app/src/main/res/layout/layout_menu_head_info.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/menu_item.xml b/app/src/main/res/layout/menu_item.xml new file mode 100644 index 0000000..8818b8f --- /dev/null +++ b/app/src/main/res/layout/menu_item.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file