123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- package com.edufound.reader.fragment;
- import android.animation.AnimatorSet;
- import android.animation.ObjectAnimator;
- import android.os.Bundle;
- import android.view.View;
- import android.view.ViewGroup;
- import android.view.animation.LinearInterpolator;
- import android.widget.FrameLayout;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.TextView;
- import com.edufound.reader.R;
- import com.edufound.reader.activity.CommentActivity;
- import com.edufound.reader.activity.RecordActivity;
- import com.edufound.reader.base.BaseActivity;
- import com.edufound.reader.base.BaseMvpFragment;
- import com.edufound.reader.bean.SlideVideoBean;
- import com.edufound.reader.contract.RecommendFragmentContract;
- import com.edufound.reader.presenter.RecommendFragmentPresenter;
- import com.orhanobut.logger.Logger;
- import androidx.recyclerview.widget.RecyclerView;
- public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresenter> implements RecommendFragmentContract.View {
- View mRootView;
- RecyclerView mRecyclerView;
- FrameLayout mUserHeadLayout;
- FrameLayout mCommentLayout;
- FrameLayout mCollectionLayout;
- FrameLayout mThumbsLayout;
- LinearLayout mToRecordLayout;
- ImageView mVideoUp;
- ImageView mVideoNext;
- ObjectAnimator mRotationImgAnim;
- ImageView mToRecordRotationbg;
- ObjectAnimator mToRecordScaleXAnim;
- ObjectAnimator mToRecordScaleYAnim;
- ImageView mToRecordScaleIcon;
- ImageView mUserHead;
- TextView mUserPhone;
- TextView mCommentCount;
- TextView mCollentStatus;
- TextView mThumbCount;
- //默认是推荐 mFragmentType=0
- //关注 mFragmentType=1
- //官方的 mFragmentType=2
- //关注的人的mFragmentType=3
- int mFragmentType = 0;
- public RecommendFragment(int type) {
- mFragmentType = type;
- }
- boolean hideBottom = false;
- int startPosition = 0;
- @Override
- protected void initView(View view) {
- mRootView = view;
- mPresenter = new RecommendFragmentPresenter(getContext());
- mPresenter.attachView(this);
- mRecyclerView = view.findViewById(R.id.fragment_recommend_recyclerview);
- mUserHeadLayout = view.findViewById(R.id.fragment_recommend_user_head_layout);
- mCommentLayout = view.findViewById(R.id.fragment_recommend_comment_layout);
- mCollectionLayout = view.findViewById(R.id.fragment_recommend_collection_layout);
- mThumbsLayout = view.findViewById(R.id.fragment_recommend_thumbs_layout);
- mVideoUp = view.findViewById(R.id.fragment_recommend_video_up);
- mVideoNext = view.findViewById(R.id.fragment_recommend_video_next);
- mToRecordLayout = view.findViewById(R.id.fragment_recommend_to_record_layout);
- mUserHead = view.findViewById(R.id.fragment_recommend_user_head);
- mUserPhone = view.findViewById(R.id.fragment_recommend_user_phone);
- mCommentCount = view.findViewById(R.id.fragment_recommend_comment_num);
- mCollentStatus = view.findViewById(R.id.fragment_recommend_collection_status);
- mThumbCount = view.findViewById(R.id.fragment_recommend_thumbs_num);
- //录音按钮背景旋转
- mToRecordRotationbg = mToRecordLayout.findViewById(R.id.fragment_recommend_to_record_bg);
- mRotationImgAnim = ObjectAnimator.ofFloat(mToRecordRotationbg, "rotation", 0.0F, 359.0F);
- mRotationImgAnim.setRepeatCount(-1);
- mRotationImgAnim.setDuration(1500);
- LinearInterpolator interpolator = new LinearInterpolator();
- mRotationImgAnim.setInterpolator(interpolator); //设置匀速旋转,不卡顿 icon_anim.start();
- mRotationImgAnim.start();
- //录音按钮缩小放大
- mToRecordScaleIcon = mToRecordLayout.findViewById(R.id.fragment_recommend_to_record_icon);
- mToRecordScaleXAnim = ObjectAnimator.ofFloat(mToRecordScaleIcon, "scaleX", 1F, 1.2F);//设置Y轴的立体旋转动画
- mToRecordScaleXAnim.setRepeatCount(-1);
- mToRecordScaleXAnim.setRepeatMode(ObjectAnimator.REVERSE);
- mToRecordScaleXAnim.setDuration(1000);
- LinearInterpolator interpolator2 = new LinearInterpolator();
- mToRecordScaleXAnim.setInterpolator(interpolator2); //设置匀速旋转,不卡顿 icon_anim.start();
- mToRecordScaleYAnim = ObjectAnimator.ofFloat(mToRecordScaleIcon, "scaleY", 1F, 1.2F);//设置Y轴的立体旋转动画
- mToRecordScaleYAnim.setRepeatCount(-1);
- mToRecordScaleYAnim.setRepeatMode(ObjectAnimator.REVERSE);
- mToRecordScaleYAnim.setDuration(1000);
- mToRecordScaleYAnim.setInterpolator(interpolator2); //设置匀速旋转,不卡顿 icon_anim.start();
- AnimatorSet animatorSet = new AnimatorSet();
- animatorSet.play(mToRecordScaleXAnim).with(mToRecordScaleYAnim);
- animatorSet.start();
- }
- @Override
- protected int getLayoutId() {
- return R.layout.fragment_main_recommend;
- }
- @Override
- protected void initViewListener() {
- addUiClickListener(mUserHeadLayout, o -> {
- Logger.e("点击了手机号旁边的头像");
- });
- addUiClickListener(mCommentLayout, o -> {
- Logger.e("点击了评论");
- toNextActivity(CommentActivity.class);
- });
- addUiClickListener(mCollectionLayout, o -> {
- Logger.e("点击了收藏");
- ((ImageView) mCollectionLayout.findViewById(R.id.fragment_recommend_collection_icon)).setImageResource(R.drawable.fragment_recommend_collection_icon_s);
- ((BaseActivity) getActivity()).showFollowCountAnim();
- });
- addUiClickListener(mThumbsLayout, o -> {
- Logger.e("点击了点赞");
- ((ImageView) mThumbsLayout.findViewById(R.id.fragment_recommend_thumbs_icon)).setImageResource(R.drawable.fragment_recommend_thumbs_up_s);
- ((BaseActivity) getActivity()).showFollowCountAnim();
- });
- if (hideBottom) {
- mVideoUp.setVisibility(View.GONE);
- mVideoNext.setVisibility(View.GONE);
- } else {
- addUiClickListener(mVideoUp, o -> {
- Logger.e("上一个视频");
- mPresenter.scrollToUpFunction(mRecyclerView);
- });
- addUiClickListener(mVideoNext, o -> {
- mPresenter.scrollToNextFunction(mRecyclerView, true);
- Logger.e("下一个视频");
- });
- }
- addUiClickListener(mToRecordLayout, o -> {
- Logger.e("点击我要录音了:" + mPresenter.getCurPlayVideo());
- Bundle bundle = new Bundle();
- bundle.putString("index", mPresenter.getCurPlayVideo().toString());
- toNextActivity(RecordActivity.class, bundle);
- });
- mPresenter.initVideoList(mRecyclerView, mFragmentType, startPosition);
- }
- @Override
- public void showLoading() {
- }
- @Override
- public void hideLoading() {
- }
- @Override
- public void onError(String errMessage) {
- }
- @Override
- public void onPause() {
- super.onPause();
- // JzvdStd.goOnPlayOnPause();
- mPresenter.fragmentPause(mRecyclerView);
- }
- @Override
- public void onResume() {
- Logger.e("onResume");
- super.onResume();
- // JzvdStd.goOnPlayOnResume();
- mPresenter.fragmentResume(mRecyclerView);
- }
- @Override
- public ViewGroup getRootView() {
- return (ViewGroup) mRootView;
- }
- public void hiddenBottomView() {
- hideBottom = true;
- }
- public void scrollPosition(int position) {
- startPosition = position;
- }
- @Override
- public void setTopStatus(SlideVideoBean bean) {
- //设置信息和点赞数等
- // mUserHead;
- // mUserPhone;
- // mCommentCount;
- // mCollentStatus;
- // mThumbCount;
- }
- }
|