From 48545bca10e3b86f91dc68edfe1be8c5f0ac8820 Mon Sep 17 00:00:00 2001 From: ongbo <1308161085@qq.com> Date: Thu, 21 Nov 2019 21:36:03 +0800 Subject: [PATCH] personal viewpager update third --- app/build.gradle | 10 + .../com/example/HomeContent/MainContent.java | 41 --- .../example/HomeContent/SlideFragment.java | 2 +- .../PersonalCenter/MenuListFragment.java | 52 ++- .../example/PersonalCenter/PersonContent.java | 182 +++++----- .../java/com/example/PersonalCenter/User.java | 6 +- .../PersonalCenter/avatarOnclickListener.java | 32 ++ app/src/main/res/layout/activity_chat.xml | 4 + app/src/main/res/layout/activity_home.xml | 10 - app/src/main/res/layout/activity_login.xml | 2 +- app/src/main/res/layout/activity_main.xml | 4 + .../layout/activity_personality_center.xml | 313 ++++-------------- app/src/main/res/layout/activity_register.xml | 2 +- app/src/main/res/layout/activity_search.xml | 2 +- app/src/main/res/layout/canlendar_layout.xml | 16 + app/src/main/res/layout/fragment_menu.xml | 2 +- app/src/main/res/layout/fragment_slide.xml | 1 + app/src/main/res/layout/header_logo.xml | 1 + app/src/main/res/layout/input_layout.xml | 3 +- app/src/main/res/layout/view_feed_toolbar.xml | 3 +- .../res/layout/view_global_menu_header.xml | 29 +- app/src/main/res/menu/drawer_menu.xml | 12 +- 22 files changed, 301 insertions(+), 428 deletions(-) delete mode 100644 app/src/main/java/com/example/HomeContent/MainContent.java create mode 100644 app/src/main/java/com/example/PersonalCenter/avatarOnclickListener.java delete mode 100644 app/src/main/res/layout/activity_home.xml create mode 100644 app/src/main/res/layout/canlendar_layout.xml diff --git a/app/build.gradle b/app/build.gradle index f5b3688..1e28045 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -68,8 +68,18 @@ dependencies { implementation "com.hanks:htextview-base:0.1.6" implementation "com.hanks:htextview-scale:0.1.6" + implementation "com.hanks:htextview-rainbow:0.1.6" //个人中心个性导航栏 implementation 'devlight.io:navigationtabbar:1.2.5' + //Canlendar + implementation 'com.github.prolificinteractive:material-calendarview:1.6.0' + + implementation 'jp.wasabeef:glide-transformations:4.1.0' + compileOnly "jp.co.cyberagent.android:gpuimage:2.0.3" + //头像 + +// implementation 'com.squareup.picasso:picasso:2.71828' + } diff --git a/app/src/main/java/com/example/HomeContent/MainContent.java b/app/src/main/java/com/example/HomeContent/MainContent.java deleted file mode 100644 index 330963e..0000000 --- a/app/src/main/java/com/example/HomeContent/MainContent.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.example.HomeContent; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import androidx.annotation.Nullable; -import androidx.appcompat.app.AppCompatActivity; -import androidx.fragment.app.Fragment; -import androidx.recyclerview.widget.RecyclerView; - -import com.example.cmknowledgegraph.R; - -public class MainContent extends Fragment { - protected int res; - - private RecyclerView rvFeed; - - AppCompatActivity appCompatActivity; - - public AppCompatActivity getAppCompatActivity() { - return appCompatActivity; - } - - public void setAppCompatActivity(AppCompatActivity appCompatActivity) { - this.appCompatActivity = appCompatActivity; - } - //创建视图 - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - // Inflate the layout for this fragment - return inflater.inflate( R.layout.activity_home, container, false ); //要加载的layout文件 - } - - @Override - public void onActivityCreated(@Nullable Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); - } -} diff --git a/app/src/main/java/com/example/HomeContent/SlideFragment.java b/app/src/main/java/com/example/HomeContent/SlideFragment.java index 58bb648..f56bdd6 100644 --- a/app/src/main/java/com/example/HomeContent/SlideFragment.java +++ b/app/src/main/java/com/example/HomeContent/SlideFragment.java @@ -23,7 +23,7 @@ import com.example.cmknowledgegraph.R; import java.util.ArrayList; import java.util.List; - +//这个是home的Fragment public class SlideFragment extends Fragment { private static final String TAG = "SlideFragment"; private RecyclerView mRecyclerView; diff --git a/app/src/main/java/com/example/PersonalCenter/MenuListFragment.java b/app/src/main/java/com/example/PersonalCenter/MenuListFragment.java index 3c2b042..cc9e90f 100644 --- a/app/src/main/java/com/example/PersonalCenter/MenuListFragment.java +++ b/app/src/main/java/com/example/PersonalCenter/MenuListFragment.java @@ -18,17 +18,29 @@ import android.widget.LinearLayout; import android.widget.Toast; import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.Fragment; /** - * Created by mxn on 2016/12/13. + * * MenuListFragment + * 注意这里又是一个Fragment,也就是说可能嵌套了一个子Fragment */ public class MenuListFragment extends Fragment { private ImageView ivMenuUserProfilePhoto; + public AppCompatActivity appCompatActivity; + + public void setAppCompatActivity(AppCompatActivity appCompatActivity) { + this.appCompatActivity = appCompatActivity; + } + + public AppCompatActivity getAppCompatActivity() { + return appCompatActivity; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -37,14 +49,23 @@ public class MenuListFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_menu, container, - false); + View view = inflater.inflate(R.layout.fragment_menu, container,false); + Log.i("view==","=="+view.toString()+"=="); - NavigationView linearLayout = view.findViewById(R.id.vNavigation); - View frameLayout = linearLayout.inflateHeaderView(R.layout.view_global_menu_header); - ivMenuUserProfilePhoto = (ImageView) frameLayout.findViewById(R.id.ivMenuUserProfilePhoto); + + //获取基本的菜单xml + NavigationView linearLayout = (NavigationView) view.findViewById(R.id.vNavigation); + View headview = linearLayout.getHeaderView(0); + + //获取菜单头 + //获取菜单头 + + + //获取用户的头像 + ivMenuUserProfilePhoto = (ImageView) headview.findViewById(R.id.ivMenuUserProfilePhoto); Log.i("ismenu---===","====)"+ivMenuUserProfilePhoto.toString()); NavigationView vNavigation = (NavigationView) view.findViewById(R.id.vNavigation); + //设置某个菜单呗选中 vNavigation.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(MenuItem menuItem) { @@ -58,19 +79,16 @@ public class MenuListFragment extends Fragment { private void setupHeader() { int avatarSize = getResources().getDimensionPixelSize(R.dimen.global_menu_avatar_size); - String profilePhoto = getResources().getString(R.string.user_profile_photo); - //在这里加载对应的图片信息 -// Picasso.with(getActivity()) -// .load(R.drawable.draw1) -// .placeholder(R.drawable.img_circle_placeholder) -// .resize(avatarSize, avatarSize) -// .centerCrop() -// .transform(new CircleTransformation()) -// .into(ivMenuUserProfilePhoto); - Picasso.with(getActivity()) + /* + * 在这里加载用户图片 + * */ + Picasso.with(getAppCompatActivity()) .load(R.drawable.draw1) - .placeholder(R.drawable.img_circle_placeholder) +// .placeholder(R.drawable.img_circle_placeholder) .into(ivMenuUserProfilePhoto); + avatarOnclickListener headerListener = new avatarOnclickListener(getAppCompatActivity(),this); + ivMenuUserProfilePhoto.setOnClickListener(headerListener); } + } diff --git a/app/src/main/java/com/example/PersonalCenter/PersonContent.java b/app/src/main/java/com/example/PersonalCenter/PersonContent.java index 60a5c29..3ab48fd 100644 --- a/app/src/main/java/com/example/PersonalCenter/PersonContent.java +++ b/app/src/main/java/com/example/PersonalCenter/PersonContent.java @@ -26,16 +26,24 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.example.PersonalCenter.FeedAdapter; import com.example.PersonalCenter.MenuListFragment; import com.example.cmknowledgegraph.MainActivity; import com.example.cmknowledgegraph.R; +import com.hanks.htextview.rainbow.RainbowTextView; import com.mxn.soul.flowingdrawer_core.ElasticDrawer; import com.mxn.soul.flowingdrawer_core.FlowingDrawer; +import com.squareup.picasso.Picasso; +import com.squareup.picasso.Request; + +import org.w3c.dom.Text; import java.util.ArrayList; import devlight.io.library.ntb.NavigationTabBar; +import jp.wasabeef.glide.transformations.BlurTransformation; import yalantis.com.sidemenu.interfaces.Resourceble; import yalantis.com.sidemenu.interfaces.ScreenShotable; import yalantis.com.sidemenu.util.ViewAnimator; @@ -79,61 +87,111 @@ public class PersonContent extends Fragment { mDrawer = (FlowingDrawer) appCompatActivity.findViewById(R.id.drawerlayout); mDrawer.setTouchMode(ElasticDrawer.TOUCH_MODE_BEZEL); //设置工具栏 - setupToolbar(); +// setupToolbar(); + setuptoolbar(); //设置直接页面 // setupFeed(); setupViewpager(); //设置侧滑菜单 setupMenu(); } - protected void setupToolbar() { - Toolbar toolbar = (Toolbar) appCompatActivity.findViewById(R.id.toolbar); - appCompatActivity.setSupportActionBar(toolbar); - //这里是图片,可以将其动态加载用户图片,如果没有登录就改成别的。 - toolbar.setNavigationIcon(R.drawable.ic_menu_white); - //点击了就开始侧滑 - toolbar.setNavigationOnClickListener(new View.OnClickListener() { + protected void setuptoolbar(){ + //分别设置背景和头像 + ImageView blurimageView = (ImageView) appCompatActivity.findViewById(R.id.iv_blur); + ImageView avatarImageView = (ImageView) appCompatActivity.findViewById(R.id.iv_avatar); + Glide.with(appCompatActivity).load(R.drawable.draw7) + .apply(RequestOptions.bitmapTransform(new BlurTransformation(25,3))).into(blurimageView); + + Glide.with(appCompatActivity).load(R.drawable.draw6).into(avatarImageView); + //用户名 + final TextView rainbowTextView = (TextView) appCompatActivity.findViewById(R.id.user_name_person); + rainbowTextView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - mDrawer.toggleMenu(); + } }); + avatarOnclickListener avatarOnclickListener = new avatarOnclickListener(getAppCompatActivity(),this); + avatarImageView.setOnClickListener(avatarOnclickListener); } +// //设置没有侧滑之前的状态页面 //在这里将东西其改成几个按钮 private void setupViewpager(){ + /* + * 先设置适配器 + * */ viewPager.setAdapter(new PagerAdapter() { + //设置菜单栏个数 @Override public int getCount() { - return 8; + return 5; } @Override public boolean isViewFromObject(final View view, final Object object) { return view.equals(object); } - + //移除某一个 @Override public void destroyItem(final View container, final int position, final Object object) { ((ViewPager) container).removeView((View) object); } - + /* + *这里用来加载视图区,也就是每个菜单的对应的内容 + *但是这里应该针对不同的菜单填选对应不同的内容 + * */ @Override public Object instantiateItem(final ViewGroup container, final int position) { + //每个position代表一个菜单,根据position来设置不同视图 +// + switch (position){ + case 0: + //饮食爱好 + case 1: + //日历 + View view = setCanlendar(); + container.addView(view); + return view; + case 2: + //消息通知 + case 3: + //我的文章 + case 4: + //养生推荐 + + + } + //这是默认的,不要管,因为上面必须有个返回值 final View view = LayoutInflater.from( appCompatActivity.getBaseContext()).inflate(R.layout.item_vp, null, false); - final TextView txtPage = (TextView) view.findViewById(R.id.txt_vp_item_page); txtPage.setText(String.format("Page #%d", position)); - container.addView(view); + + return view; + + } + //设置日历 + public View setCanlendar(){ + final View view = LayoutInflater.from( + appCompatActivity.getBaseContext() + ).inflate(R.layout.canlendar_layout, null, false); return view; } + //设置饮食爱好 + public View setfoodhobby(){ + return null; + } }); - + /* + * 这里开始设置菜单栏 + * */ + //每个菜单选取了不同的颜色 final String[] colors = getResources().getStringArray(R.array.vertical_ntb); - + //这里菜单栏选取的是NavigationTabBar final NavigationTabBar navigationTabBar = (NavigationTabBar) appCompatActivity.findViewById(R.id.ntb_vertical); + //这里用来加载每个model,可以设置几个菜单 final ArrayList models = new ArrayList<>(); models.add( new NavigationTabBar.Model.Builder( @@ -175,53 +233,45 @@ public class PersonContent extends Fragment { .title("ic_fifth") .build() ); - models.add( - new NavigationTabBar.Model.Builder( - getResources().getDrawable(R.drawable.ic_sixth), - Color.parseColor(colors[5])) - .selectedIcon(getResources().getDrawable(R.drawable.ic_eighth)) - .title("ic_sixth") - .build() - ); - models.add( - new NavigationTabBar.Model.Builder( - getResources().getDrawable(R.drawable.ic_seventh), - Color.parseColor(colors[6])) - .selectedIcon(getResources().getDrawable(R.drawable.ic_eighth)) - .title("ic_seventh") - .build() - ); - models.add( - new NavigationTabBar.Model.Builder( - getResources().getDrawable(R.drawable.ic_eighth), - Color.parseColor(colors[7])) - .selectedIcon(getResources().getDrawable(R.drawable.ic_eighth)) - .title("ic_eighth") - .build() - ); - +// models.add( +// new NavigationTabBar.Model.Builder( +// getResources().getDrawable(R.drawable.ic_sixth), +// Color.parseColor(colors[5])) +// .selectedIcon(getResources().getDrawable(R.drawable.ic_eighth)) +// .title("ic_sixth") +// .build() +// ); +// models.add( +// new NavigationTabBar.Model.Builder( +// getResources().getDrawable(R.drawable.ic_seventh), +// Color.parseColor(colors[6])) +// .selectedIcon(getResources().getDrawable(R.drawable.ic_eighth)) +// .title("ic_seventh") +// .build() +// ); +// models.add( +// new NavigationTabBar.Model.Builder( +// getResources().getDrawable(R.drawable.ic_eighth), +// Color.parseColor(colors[7])) +// .selectedIcon(getResources().getDrawable(R.drawable.ic_eighth)) +// .title("ic_eighth") +// .build() +// ); + //设置菜单 navigationTabBar.setModels(models); - navigationTabBar.setViewPager(viewPager, 4); + //设置每个子菜单对一个的viewpager + navigationTabBar.setViewPager(viewPager, 0); } -// private void setupFeed() { -// LinearLayoutManager linearLayoutManager = new LinearLayoutManager(appCompatActivity) { -// @Override -// protected int getExtraLayoutSpace(RecyclerView.State state) { -// return 300; -// } -// }; -// rvFeed.setLayoutManager(linearLayoutManager); -// FeedAdapter feedAdapter = new FeedAdapter(appCompatActivity); -// rvFeed.setAdapter(feedAdapter); -// feedAdapter.updateItems(); -// } + //设置菜单 private void setupMenu() { FragmentManager fm = appCompatActivity.getSupportFragmentManager();//获取Fragment管理器 MenuListFragment mMenuFragment = (MenuListFragment) fm.findFragmentById(R.id.id_container_menu); + if (mMenuFragment == null) { mMenuFragment = new MenuListFragment(); + mMenuFragment.setAppCompatActivity(getAppCompatActivity()); fm.beginTransaction().add(R.id.id_container_menu, mMenuFragment).commit(); //向activity添加一个布局 } @@ -241,29 +291,5 @@ public class PersonContent extends Fragment { // }); } // -// public void onActivityCreated(Bundle savedInstanceState) { -// // TODO Auto-generated method stub -// super.onActivityCreated(savedInstanceState); -// -// Button login_pc_btn = (Button) getActivity().findViewById(R.id.login_pc_button); -// login_pc_btn.setOnClickListener(new View.OnClickListener() { -// public void onClick(View v) { -// -// Intent intent=new Intent(); -// intent.setClass(getActivity(),LoginActivity.class); -// startActivity(intent); -// } -// }); -// } -// @Override -// public void onResume() { -// super.onResume(); -// if(LoginActivity.isLogin){ -// Button longin_pc_btn=(Button) getActivity().findViewById(R.id.login_pc_button); -// longin_pc_btn.setText("Hello"+LoginActivity.username); -// } -// -////高血压 -// } } diff --git a/app/src/main/java/com/example/PersonalCenter/User.java b/app/src/main/java/com/example/PersonalCenter/User.java index 92abedb..db014d9 100644 --- a/app/src/main/java/com/example/PersonalCenter/User.java +++ b/app/src/main/java/com/example/PersonalCenter/User.java @@ -14,12 +14,10 @@ public class User { private String avatar_url; private String sex; private Long age; - public static boolean isLogin;//是否登录 + public static boolean isLogin = false;//是否登录 private User(){} public static synchronized User getUser(){ - if(user == null){ - user = new User(); - } + return user; } diff --git a/app/src/main/java/com/example/PersonalCenter/avatarOnclickListener.java b/app/src/main/java/com/example/PersonalCenter/avatarOnclickListener.java new file mode 100644 index 0000000..0cac777 --- /dev/null +++ b/app/src/main/java/com/example/PersonalCenter/avatarOnclickListener.java @@ -0,0 +1,32 @@ +package com.example.PersonalCenter; + +import android.content.Intent; +import android.view.View; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.fragment.app.Fragment; + +import com.example.cmknowledgegraph.LoginActivity; + +public class avatarOnclickListener implements View.OnClickListener { + AppCompatActivity appCompatActivity; + Fragment personFragment; + public avatarOnclickListener(AppCompatActivity appCompatActivity,Fragment fragment){ + this.personFragment = fragment; + this.appCompatActivity = appCompatActivity; + } + @Override + public void onClick(View v) { + //这里监听就是如果未登录就跳到登录界面 + if(User.isLogin()){ + //登陆了 + }else{ + //没有登录 + //跳转到登录界面 + Intent intent=new Intent(); + intent.setClass(appCompatActivity, LoginActivity.class); + personFragment.startActivity(intent); + } + //如果登录了就跳到个人信息界面 + } +} diff --git a/app/src/main/res/layout/activity_chat.xml b/app/src/main/res/layout/activity_chat.xml index fad4911..9dbcd52 100644 --- a/app/src/main/res/layout/activity_chat.xml +++ b/app/src/main/res/layout/activity_chat.xml @@ -1,4 +1,8 @@ + + - - - - diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 950e732..203f296 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -4,7 +4,7 @@ android:layout_height="match_parent" android:background="#7adfb8" tools:context=".LoginActivity" > - + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 7e4477f..9a78545 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,4 +1,8 @@ + + > - - - - - - - - - - - - - - + android:layout_height="300dp" + android:background="@drawable/draw1"/> + + + + + + + //最上面的菜单栏 - - - - + + + + + + + + + + + @@ -92,215 +113,3 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_register.xml b/app/src/main/res/layout/activity_register.xml index 621807b..3ed51a7 100644 --- a/app/src/main/res/layout/activity_register.xml +++ b/app/src/main/res/layout/activity_register.xml @@ -6,7 +6,7 @@ android:layout_height="match_parent" android:orientation="vertical" tools:context=".RegisterActivity"> - + - + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_menu.xml b/app/src/main/res/layout/fragment_menu.xml index d0142f4..d6bc16e 100644 --- a/app/src/main/res/layout/fragment_menu.xml +++ b/app/src/main/res/layout/fragment_menu.xml @@ -11,7 +11,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" - android:background="@android:color/transparent" + android:background="#4b405c" app:headerLayout="@layout/view_global_menu_header" app:itemIconTint="#8b8b8b" app:itemTextColor="#666666" diff --git a/app/src/main/res/layout/fragment_slide.xml b/app/src/main/res/layout/fragment_slide.xml index 13dfdaa..21bd6e7 100644 --- a/app/src/main/res/layout/fragment_slide.xml +++ b/app/src/main/res/layout/fragment_slide.xml @@ -1,4 +1,5 @@ + + + diff --git a/app/src/main/res/layout/view_feed_toolbar.xml b/app/src/main/res/layout/view_feed_toolbar.xml index 765483b..db7de73 100755 --- a/app/src/main/res/layout/view_feed_toolbar.xml +++ b/app/src/main/res/layout/view_feed_toolbar.xml @@ -1,5 +1,6 @@ - + - - + + + + + + - + android:layout_width="80dp" + android:layout_height="80dp" + android:src="@drawable/draw1" + app:civ_border_width="2dp" + app:civ_border_color="#FF000000" + /> + - diff --git a/app/src/main/res/menu/drawer_menu.xml b/app/src/main/res/menu/drawer_menu.xml index da6eec0..ea3f770 100755 --- a/app/src/main/res/menu/drawer_menu.xml +++ b/app/src/main/res/menu/drawer_menu.xml @@ -3,27 +3,27 @@ + android:title="我的收藏" /> + android:title="浏览记录" /> + android:title="个人信息" /> + android:title="账号与安全" /> + android:title="产品反馈" /> + android:title="版本" />