فهرست منبع

1.修改我的收藏icon问题
2.修改官方不显示加号问题
3.修改播放器切换过快崩溃问题
4.增加百度VIP监听提示
5.替换没有评论显示的图
6.增加第一次进入,给出上下滑动提示

FailedToRead 3 سال پیش
والد
کامیت
d2aa482ecd
27فایلهای تغییر یافته به همراه232 افزوده شده و 90 حذف شده
  1. 3 2
      .idea/misc.xml
  2. 1 0
      app/src/fragmentRecommend/layout/fragment_main_recommend.xml
  3. 0 1
      app/src/main/AndroidManifest.xml
  4. 18 4
      app/src/main/java/com/edufound/reader/activity/MainActivity.java
  5. 19 5
      app/src/main/java/com/edufound/reader/activity/OthersRecordActivity.java
  6. 24 5
      app/src/main/java/com/edufound/reader/activity/RecordActivity.java
  7. 1 1
      app/src/main/java/com/edufound/reader/adapter/MyCollectionItemAdapter.java
  8. 2 2
      app/src/main/java/com/edufound/reader/application/EApplication.java
  9. 28 0
      app/src/main/java/com/edufound/reader/base/BaseActivity.java
  10. 2 0
      app/src/main/java/com/edufound/reader/contract/RecordContract.java
  11. 21 3
      app/src/main/java/com/edufound/reader/fragment/RecommendFragment.java
  12. 1 1
      app/src/main/java/com/edufound/reader/model/RecommendFragmentModel.java
  13. 1 1
      app/src/main/java/com/edufound/reader/presenter/CommentPresenter.java
  14. 3 2
      app/src/main/java/com/edufound/reader/presenter/RecommendFragmentPresenter.java
  15. 7 0
      app/src/main/java/com/edufound/reader/presenter/RecordPresenter.java
  16. 17 0
      app/src/main/java/com/edufound/reader/util/GlideUtils.java
  17. 53 55
      app/src/main/java/com/edufound/reader/videoutil/JZMediaIjk.java
  18. BIN
      app/src/main/res/drawable/activity_comment_nocomment.png
  19. BIN
      app/src/main/res/drawable/first_scallbar.png
  20. BIN
      app/src/main/res/drawable/first_touch.png
  21. BIN
      app/src/main/res/drawable/ic_default_image.9.png
  22. BIN
      app/src/main/res/drawable/ic_default_image.png
  23. 1 1
      app/src/main/res/layout/activity_comment.xml
  24. 1 3
      app/src/main/res/layout/activity_main.xml
  25. 25 0
      app/src/main/res/layout/first_tip.xml
  26. 3 3
      app/src/main/res/layout/fragment_main_character.xml
  27. 1 1
      app/src/main/res/layout/fragment_main_user.xml

+ 3 - 2
.idea/misc.xml

@@ -26,7 +26,7 @@
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/drawable/slidevideo_switch_track_s.xml" value="0.37890625" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/drawable/slidevideo_switch_track_selector.xml" value="0.32734375" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/drawable/switch_thumb.xml" value="0.37890625" />
-        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/layout/fragment_main_recommend.xml" value="0.75" />
+        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/layout/fragment_main_recommend.xml" value="0.14" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/layout/popup_myorder.xml" value="0.2889294403892944" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/layout/popupwindow_myorder.xml" value="0.2889294403892944" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/layout/popupwindow_record_remove.xml" value="0.2980535279805353" />
@@ -61,7 +61,7 @@
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_comment.xml" value="0.33" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_crash_dialog.xml" value="0.12" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_customerservice.xml" value="0.33" />
-        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_main.xml" value="0.9" />
+        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_main.xml" value="0.12" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_message.xml" value="0.14" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_otherrecord.xml" value="0.303125" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_pay.xml" value="0.2" />
@@ -85,6 +85,7 @@
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/anim_getfollow.xml" value="0.33" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/curjzplayer_controller.xml" value="0.16" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/cusjzplayer_controller.xml" value="0.5029154518950437" />
+        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/first_tip.xml" value="0.9" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/fragment_main_character.xml" value="0.18" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/fragment_main_recommend.xml" value="0.2" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/fragment_main_user.xml" value="0.9" />

+ 1 - 0
app/src/fragmentRecommend/layout/fragment_main_recommend.xml

@@ -2,6 +2,7 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
+        android:layout_gravity="center"
         android:gravity="center">
 
     <FrameLayout

+ 0 - 1
app/src/main/AndroidManifest.xml

@@ -2,7 +2,6 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         package="com.edufound.reader">
 
-    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

+ 18 - 4
app/src/main/java/com/edufound/reader/activity/MainActivity.java

@@ -7,6 +7,7 @@ import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.net.Uri;
+import android.os.Bundle;
 import android.view.KeyEvent;
 import android.view.ViewGroup;
 import android.widget.ImageView;
@@ -70,12 +71,25 @@ public class MainActivity extends BaseMvpActivity<MainPresenter> implements Main
 
         if (getIntent() != null && getIntent().getStringExtra("url") != null && !getIntent().getStringExtra("url").equals("")) {
             //efunbox://com.edufound.reader/main?resid=11132
-            Uri baiduurl = Uri.parse(getIntent().getStringExtra("url"));
-            String resid = baiduurl.getQueryParameter("resid");
-            Logger.e("从百度获取的url:" + baiduurl);
-            Logger.e("从百度获取的url-resid:" + resid);
+            Uri uri = Uri.parse(getIntent().getStringExtra("url"));
+            String exampleId = uri.getQueryParameter("exampleId");
+            String backModel = uri.getQueryParameter("backModel");
+            Logger.e("从百度获取的url:" + uri);
+            Logger.e("从百度获取的url-exampleId:" + exampleId);
+            Logger.e("从百度获取的url-backModel:" + backModel);
+            if (exampleId == null || exampleId.equals("")) {
+
+            } else {
+                Bundle bundle = new Bundle();
+                bundle.putString("exampleId", exampleId);
+                bundle.putString("backModel", backModel);
+                toNextActivity(RecordActivity.class, bundle);
+
+            }
         }
 
+        showFirstTouchView();
+
         //efunbox://com.edufound.reader/main?
     }
 

+ 19 - 5
app/src/main/java/com/edufound/reader/activity/OthersRecordActivity.java

@@ -140,7 +140,6 @@ public class OthersRecordActivity extends BaseMvpActivity<OthersRecordPresenter>
     }
 
 
-
     @Override
     public void showLoading() {
 
@@ -202,15 +201,30 @@ public class OthersRecordActivity extends BaseMvpActivity<OthersRecordPresenter>
     @Override
     public void setLeftUserInfo(MyInfoBean info) {
         mAllCount.setText(String.valueOf("作品:" + info.getReadAmount()));
-        GlideUtils.loadCircleImage(getActivity(), info.getUser().getAvatar(), mUserHead);
+        if (info.getUser().getAvatar() == null || info.getUser().getAvatar().equals("")) {
+            if (info.getUser().getGender().equals("1")) {
+                //男
+                GlideUtils.loadCircleImage(getActivity(), R.drawable.activity_userinfo_setting_boy, mUserHead);
+            } else {
+                GlideUtils.loadCircleImage(getActivity(), R.drawable.activity_userinfo_setting_girl, mUserHead);
+            }
+        } else {
+            GlideUtils.loadCircleImage(getActivity(), info.getUser().getAvatar(), mUserHead);
+        }
+
         mFansCount.setText(String.valueOf(info.getFansAmount()));
         mFlowerCount.setText(String.valueOf(info.getIntegralAmount()));
         mPlayCount.setText(String.valueOf(info.getPlayAmount()));
         mUserName.setText(info.getUser().getNickName());
         doFollowSuccess(info.getLike());
-        addUiClick(mIsFansCheckBox, o -> {
-            mPresenter.doFollow(info.getUser().getUid());
-        });
+        if (info.getUser().getUid().equals(Consts.getUID()) || info.getUser().getProfession().equals("官方")) {
+            //是自己
+            mIsFansCheckBox.setVisibility(View.INVISIBLE);
+        } else {
+            addUiClick(mIsFansCheckBox, o -> {
+                mPresenter.doFollow(info.getUser().getUid());
+            });
+        }
     }
 
     @Override

+ 24 - 5
app/src/main/java/com/edufound/reader/activity/RecordActivity.java

@@ -15,7 +15,9 @@ import com.baidu.duer.bot.directive.payload.AmountInfo;
 import com.baidu.duer.botsdk.BotIntent;
 import com.edufound.reader.R;
 import com.edufound.reader.annotation.BindView;
+import com.edufound.reader.application.EApplication;
 import com.edufound.reader.base.BaseMvpActivity;
+import com.edufound.reader.bean.ChannelCodeEnum;
 import com.edufound.reader.botsdk.BotRegisterListener;
 import com.edufound.reader.contract.RecordContract;
 import com.edufound.reader.cusview.RvListJzvdStd;
@@ -70,14 +72,31 @@ public class RecordActivity extends BaseMvpActivity<RecordPresenter> implements
         mPresenter.getReadInfo(getIntent());
         mJzVideoViwe.setCanPause(false);
         addUiClickListener(mBack, o -> {
-            mActivity.finish();
+            if (mPresenter.getBackModel() == null || mPresenter.getBackModel().equals("") || mPresenter.getBackModel().equals("home")) {
+                mActivity.finish();
+            } else if (mPresenter.getBackModel().equals("app")) {
+
+                for (int i = 0; i < EApplication.mActivityList.size(); i++) {
+                    EApplication.mActivityList.get(i).finish();
+                }
+                EApplication.killAppProcess(mActivity);
+                android.os.Process.killProcess(android.os.Process.myPid());
+
+            }
         });
         addUiClickListener(mMikeIcon, o -> {
             if (EfunboxUtil.checkLogin(mActivity)) {
-                if (isRecordNow) {
-                    refRecordStatus();
-                } else {
-                    startRecordStatus();
+                if (Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
+                    if (Consts.getmConstsBaiDuUserBean().getUserInfo().getIsVip() == 1) {
+                        if (isRecordNow) {
+                            refRecordStatus();
+                        } else {
+                            startRecordStatus();
+                        }
+                    } else {
+                        Toast.makeText(mActivity, "请购买会员后尝试", Toast.LENGTH_SHORT).show();
+                    }
+
                 }
             }
         });

+ 1 - 1
app/src/main/java/com/edufound/reader/adapter/MyCollectionItemAdapter.java

@@ -79,7 +79,7 @@ public class MyCollectionItemAdapter extends RecyclerView.Adapter<RecyclerView.V
     @Override
     public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, @SuppressLint("RecyclerView") int position) {
         ((MyCollectionItemHolder) holder).mItemName.setText(String.valueOf(mListData.get(position).getUserRead().getTitle()));
-        GlideUtils.loadRoundCircleImage(mContext, mListData.get(position).getUserRead().getIconImg(), ((MyCollectionItemHolder) holder).mItemIcon, SizeUtils.dp2px(mContext, 20));
+        GlideUtils.loadImage(mContext, mListData.get(position).getUserRead().getIconImg(), ((MyCollectionItemHolder) holder).mItemIcon);
         ((MyCollectionItemHolder) holder).mCommentNum.setText(EfunboxUtil.checkNum10000(String.valueOf(mListData.get(position).getUserRead().getCommentAmount())));
         ((MyCollectionItemHolder) holder).mLookNum.setText(EfunboxUtil.checkNum10000(String.valueOf(mListData.get(position).getUserRead().getPlayAmount())));
         ((MyCollectionItemHolder) holder).mThumbNum.setText(EfunboxUtil.checkNum10000(String.valueOf(mListData.get(position).getUserRead().getLikeAmount())));

+ 2 - 2
app/src/main/java/com/edufound/reader/application/EApplication.java

@@ -52,12 +52,12 @@ public class EApplication extends Application {
     public void onCreate() {
         super.onCreate();
         try {
-            Consts.setIsDebug(false);
+            Consts.setIsDebug(true);
             Consts.setmApplicAtion(this);
 
             //初始化异常监听
 //            CrashHandler.getInstance().init(this);
-            initException();
+//            initException();
 
             XmlPullParserFactory.newInstance().setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
 

+ 28 - 0
app/src/main/java/com/edufound/reader/base/BaseActivity.java

@@ -20,6 +20,7 @@ import android.view.ViewGroup;
 import android.view.WindowManager;
 import android.view.animation.LinearInterpolator;
 import android.widget.FrameLayout;
+import android.widget.ImageView;
 import android.widget.TextView;
 import android.widget.Toast;
 
@@ -47,6 +48,7 @@ import com.edufound.reader.util.LiuHaiScreenUtil;
 import com.edufound.reader.util.MMKVEncodeKey;
 import com.edufound.reader.util.MMKVUtil;
 import com.edufound.reader.util.PermissionsUtil;
+import com.edufound.reader.util.SizeUtils;
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
 import com.jakewharton.rxbinding4.view.RxView;
@@ -281,6 +283,32 @@ public abstract class BaseActivity extends AppCompatActivity {
 //
     }
 
+
+    public void showFirstTouchView() {
+        View touchview = LayoutInflater.from(this).inflate(R.layout.first_tip, null);
+        ImageView touch = touchview.findViewById(R.id.first_touch);
+        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+        params.gravity = Gravity.RIGHT;
+        params.rightMargin = SizeUtils.dp2px(Consts.getmApplicAtion().getBaseContext(), 30);
+        touchview.setLayoutParams(params);
+        ObjectAnimator mRotationImgAnim = ObjectAnimator.ofFloat(touch, "translationY", 0, -150);
+        mRotationImgAnim.setDuration(300);
+        LinearInterpolator interpolator = new LinearInterpolator();
+        mRotationImgAnim.setInterpolator(interpolator); //设置匀速旋转,不卡顿 icon_anim.start();
+        getRootView().addView(touchview);
+        AnimatorSet animatorSet = new AnimatorSet();
+//        animatorSet.addListener(new AnimatorListenerAdapter() {
+//            @Override
+//            public void onAnimationEnd(Animator animation) {
+//                super.onAnimationEnd(animation);
+//                getRootView().removeView(touchview);
+//            }
+//        });
+        animatorSet.start();
+//
+    }
+
+
     public Gson getGson() {
         return mGson;
     }

+ 2 - 0
app/src/main/java/com/edufound/reader/contract/RecordContract.java

@@ -90,5 +90,7 @@ public interface RecordContract {
         String getRecordUrl();
 
         void clickExampleUI();
+
+        String getBackModel();
     }
 }

+ 21 - 3
app/src/main/java/com/edufound/reader/fragment/RecommendFragment.java

@@ -3,6 +3,7 @@ package com.edufound.reader.fragment;
 import android.animation.AnimatorSet;
 import android.animation.ObjectAnimator;
 import android.os.Bundle;
+import android.view.Gravity;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.animation.LinearInterpolator;
@@ -80,6 +81,9 @@ public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresente
         mFragmentType = type;
     }
 
+    public RecommendFragment() {
+    }
+
     @Override
     protected void initView(View view) {
         mRootView = view;
@@ -233,13 +237,27 @@ public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresente
     public void setTopStatus(UserRecordBean bean) {
 
         //设置信息和点赞数等
-        GlideUtils.loadCircleImage(getActivity(), bean.getUser().getAvatar(), mUserHead);
+        if (bean.getUser().getAvatar() == null || bean.getUser().getAvatar().equals("")) {
+            if (bean.getUser().getGender().equals("1")) {
+                //男
+                GlideUtils.loadCircleImage(getActivity(), R.drawable.activity_userinfo_setting_boy, mUserHead);
+            } else {
+                GlideUtils.loadCircleImage(getActivity(), R.drawable.activity_userinfo_setting_girl, mUserHead);
+            }
+        } else {
+            GlideUtils.loadCircleImage(getActivity(), bean.getUser().getAvatar(), mUserHead);
+        }
         mUserPhone.setText(bean.getUser().getNickName());
         mCommentCount.setText(bean.getUserRead().getCommentAmount());
-        if (bean.getIsFans()) {
+        if (bean.getUser().getUid().equals(Consts.getUID()) || bean.getUser().getProfession().equals("官方")) {
+            //是自己
             isFollow.setVisibility(View.INVISIBLE);
         } else {
-            isFollow.setVisibility(View.VISIBLE);
+            if (bean.getIsFans()) {
+                isFollow.setVisibility(View.INVISIBLE);
+            } else {
+                isFollow.setVisibility(View.VISIBLE);
+            }
         }
         if (bean.getIsFavorites() || bean.getFavoritesBean() != null) {
             mCollentStatus.setText("已收藏");

+ 1 - 1
app/src/main/java/com/edufound/reader/model/RecommendFragmentModel.java

@@ -19,7 +19,7 @@ public class RecommendFragmentModel implements RecommendFragmentContract.Model {
      */
     @Override
     public void getRecommendList(Activity activity, String grade, int pageIndex, Callback callback) {
-        OkHttpClient.doGetAsync(activity, new HttpInfo.Builder().setUrl(API + "/userRead/recommend").addParam("grade", grade).addParam("pageNo", String.valueOf(pageIndex)).addParam("pageSize", "5"), callback);
+        OkHttpClient.doGetAsync(activity, new HttpInfo.Builder().setUrl(API + "/userRead/recommend").addParam("grade", grade).addParam("pageNo", String.valueOf(pageIndex)).addParam("pageSize", "100"), callback);
     }
 
     @Override

+ 1 - 1
app/src/main/java/com/edufound/reader/presenter/CommentPresenter.java

@@ -51,7 +51,7 @@ public class CommentPresenter extends BasePresenter<CommentContract.View> implem
 
     @Override
     public void initComment(RecyclerView rv, FrameLayout noCommentLayout) {
-        if (mDataList == null && mDataList.size() <= 0) {
+        if (mDataList == null || mDataList.size() <= 0) {
             noCommentLayout.setVisibility(View.VISIBLE);
             rv.setVisibility(View.GONE);
             return;

+ 3 - 2
app/src/main/java/com/edufound/reader/presenter/RecommendFragmentPresenter.java

@@ -411,9 +411,10 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
                 player.setVideoCallBack(new RvListJzvdStd.VideoCallBack() {
                     @Override
                     public void onComplete() {
-                        if (mCurrentPosition >= mDataList.size() - 1) {
+                        if (mCurrentPosition >= mTotalSize - 1) {
                             Toast.makeText(mView.getActivity(), "全部播放完成", Toast.LENGTH_SHORT).show();
-                            mView.getActivity().finish();
+//                            mView.getActivity().finish();
+                            return;
                         }
                         scrollToNextFunction(rv, true);
                     }

+ 7 - 0
app/src/main/java/com/edufound/reader/presenter/RecordPresenter.java

@@ -60,6 +60,7 @@ public class RecordPresenter extends BasePresenter<RecordContract.View> implemen
     UserRecordBean.UserRead mRecordUserRead;
     //READ是用户在读,example是厅官方
     String playType = "EXAMPLE";
+    String backModel = "";
 
     boolean isRecording = false;
 
@@ -93,6 +94,7 @@ public class RecordPresenter extends BasePresenter<RecordContract.View> implemen
     public void getReadInfo(Intent intent) {
         Bundle params = intent.getBundleExtra("params_bundle");
         mReadId = params.getString("exampleId");
+        backModel = params.getString("backModel");
         if (Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
             BotRegisterListener.uploadUsage("1", mReadId, "record", "vip");
         }
@@ -133,6 +135,11 @@ public class RecordPresenter extends BasePresenter<RecordContract.View> implemen
     }
 
     @Override
+    public String getBackModel() {
+        return backModel;
+    }
+
+    @Override
     public void initVideoPlayer(String url) {
         Logger.e("url:" + url);
         mView.getJZVideoView().setUp(new JZDataSource(url), JzvdStd.SCREEN_FULLSCREEN, JZMediaIjk.class, mReadId);

+ 17 - 0
app/src/main/java/com/edufound/reader/util/GlideUtils.java

@@ -123,6 +123,23 @@ public class GlideUtils {
     }
 
     /**
+     * 加载圆形图片
+     *
+     * @param context   上下文
+     * @param resid     资源id
+     * @param imageView ImageView
+     */
+    public static void loadCircleImage(Context context, int resid, ImageView imageView) {
+        RequestOptions options = new RequestOptions()
+                .centerCrop()
+                .circleCrop()//设置圆形
+                .placeholder(placeholderImage) //占位图
+                .error(errorImage)             //错误图
+                .priority(Priority.HIGH);
+        Glide.with(context).load(resid).apply(options).into(imageView);
+    }
+
+    /**
      * 加载圆形带边框图片
      *
      * @param context     上下文

+ 53 - 55
app/src/main/java/com/edufound/reader/videoutil/JZMediaIjk.java

@@ -46,63 +46,61 @@ public class JZMediaIjk extends JZMediaInterface implements IMediaPlayer.OnPrepa
         mMediaHandler = new Handler(mMediaHandlerThread.getLooper());//主线程还是非主线程,就在这里
         handler = new Handler();
 
-        mMediaHandler.post(() -> {
-            try {
-                ijkMediaPlayer = new IjkMediaPlayer();
-                ijkMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
-                ////1为硬解 0为软解
-                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 0);
-                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-auto-rotate", 1);
-                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-handle-resolution-change", 1);
-                //使用opensles把文件从java层拷贝到native层
-                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "opensles", 0);
-                //视频格式
-                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "overlay-format", IjkMediaPlayer.SDL_FCC_RV32);
-                //跳帧处理(-1~120)。CPU处理慢时,进行跳帧处理,保证音视频同步
-                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", 1);
-                //0为一进入就播放,1为进入时不播放
-                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 0);
-                ////域名检测
-                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "http-detect-range-support", 0);
-                //设置是否开启环路过滤: 0开启,画面质量高,解码开销大,48关闭,画面质量差点,解码开销小
-                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "skip_loop_filter", 48);
-                //最大缓冲大小,单位kb
-                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "max-buffer-size", 1024 * 1024);
-                //某些视频在SeekTo的时候,会跳回到拖动前的位置,这是因为视频的关键帧的问题,通俗一点就是FFMPEG不兼容,视频压缩过于厉害,seek只支持关键帧,出现这个情况就是原始的视频文件中i 帧比较少
-                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "enable-accurate-seek", 1);
-                //是否重连
-                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "reconnect", 1);
-                //http重定向https
-                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "dns_cache_clear", 1);
-                //设置seekTo能够快速seek到指定位置并播放
-                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "fflags", "fastseek");
-                //播放前的探测Size,默认是1M, 改小一点会出画面更快(开了这个官方视频没声音)
+        try {
+            ijkMediaPlayer = new IjkMediaPlayer();
+            ijkMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
+            ////1为硬解 0为软解
+            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 0);
+            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-auto-rotate", 1);
+            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-handle-resolution-change", 1);
+            //使用opensles把文件从java层拷贝到native层
+            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "opensles", 0);
+            //视频格式
+            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "overlay-format", IjkMediaPlayer.SDL_FCC_RV32);
+            //跳帧处理(-1~120)。CPU处理慢时,进行跳帧处理,保证音视频同步
+            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", 1);
+            //0为一进入就播放,1为进入时不播放
+            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 0);
+            ////域名检测
+            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "http-detect-range-support", 0);
+            //设置是否开启环路过滤: 0开启,画面质量高,解码开销大,48关闭,画面质量差点,解码开销小
+            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "skip_loop_filter", 48);
+            //最大缓冲大小,单位kb
+            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "max-buffer-size", 1024 * 1024);
+            //某些视频在SeekTo的时候,会跳回到拖动前的位置,这是因为视频的关键帧的问题,通俗一点就是FFMPEG不兼容,视频压缩过于厉害,seek只支持关键帧,出现这个情况就是原始的视频文件中i 帧比较少
+            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "enable-accurate-seek", 1);
+            //是否重连
+            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "reconnect", 1);
+            //http重定向https
+            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "dns_cache_clear", 1);
+            //设置seekTo能够快速seek到指定位置并播放
+            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "fflags", "fastseek");
+            //播放前的探测Size,默认是1M, 改小一点会出画面更快(开了这个官方视频没声音)
 //                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "probesize", 1024 * 10);
-                //1变速变调状态 0变速不变调状态
-                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1);
-
-                ijkMediaPlayer.setOnPreparedListener(JZMediaIjk.this);
-                ijkMediaPlayer.setOnVideoSizeChangedListener(JZMediaIjk.this);
-                ijkMediaPlayer.setOnCompletionListener(JZMediaIjk.this);
-                ijkMediaPlayer.setOnErrorListener(JZMediaIjk.this);
-                ijkMediaPlayer.setOnInfoListener(JZMediaIjk.this);
-                ijkMediaPlayer.setOnBufferingUpdateListener(JZMediaIjk.this);
-                ijkMediaPlayer.setOnSeekCompleteListener(JZMediaIjk.this);
-                ijkMediaPlayer.setOnTimedTextListener(JZMediaIjk.this);
-
-
-                ijkMediaPlayer.setDataSource(jzvd.jzDataSource.getCurrentUrl().toString());
-                ijkMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
-                ijkMediaPlayer.setScreenOnWhilePlaying(true);
-                ijkMediaPlayer.prepareAsync();
-
-                if (jzvd.textureView.getSurfaceTexture() != null && ijkMediaPlayer != null) {
-                    ijkMediaPlayer.setSurface(new Surface(jzvd.textureView.getSurfaceTexture()));
-                }
-            } catch (IOException e) {
-                e.printStackTrace();
+            //1变速变调状态 0变速不变调状态
+            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1);
+
+            ijkMediaPlayer.setOnPreparedListener(JZMediaIjk.this);
+            ijkMediaPlayer.setOnVideoSizeChangedListener(JZMediaIjk.this);
+            ijkMediaPlayer.setOnCompletionListener(JZMediaIjk.this);
+            ijkMediaPlayer.setOnErrorListener(JZMediaIjk.this);
+            ijkMediaPlayer.setOnInfoListener(JZMediaIjk.this);
+            ijkMediaPlayer.setOnBufferingUpdateListener(JZMediaIjk.this);
+            ijkMediaPlayer.setOnSeekCompleteListener(JZMediaIjk.this);
+            ijkMediaPlayer.setOnTimedTextListener(JZMediaIjk.this);
+
+
+            ijkMediaPlayer.setDataSource(jzvd.jzDataSource.getCurrentUrl().toString());
+            ijkMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
+            ijkMediaPlayer.setScreenOnWhilePlaying(true);
+            ijkMediaPlayer.prepareAsync();
+
+            if (jzvd.textureView.getSurfaceTexture() != null && ijkMediaPlayer != null) {
+                ijkMediaPlayer.setSurface(new Surface(jzvd.textureView.getSurfaceTexture()));
             }
-        });
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
 
     }
 

BIN
app/src/main/res/drawable/activity_comment_nocomment.png


BIN
app/src/main/res/drawable/first_scallbar.png


BIN
app/src/main/res/drawable/first_touch.png


BIN
app/src/main/res/drawable/ic_default_image.9.png


BIN
app/src/main/res/drawable/ic_default_image.png


+ 1 - 1
app/src/main/res/layout/activity_comment.xml

@@ -87,7 +87,7 @@
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
                                         android:layout_gravity="center"
-                                        android:src="@drawable/fragment_user_no_record"></ImageView>
+                                        android:src="@drawable/activity_comment_nocomment"></ImageView>
                             </FrameLayout>
 
                         </FrameLayout>

+ 1 - 3
app/src/main/res/layout/activity_main.xml

@@ -94,7 +94,7 @@
                         android:id="@+id/main_fragment_layout"
                         android:layout_width="match_parent"
                         android:layout_height="match_parent"
-                        android:layout_gravity="center"></FrameLayout>
+                        android:layout_gravity="left"></FrameLayout>
 
             </FrameLayout>
         </LinearLayout>
@@ -105,8 +105,6 @@
                 android:layout_width="80dp"
                 android:layout_height="80dp"
                 android:layout_gravity="top|right"
-                android:layout_marginTop="15dp"
-                android:layout_marginRight="10dp"
                 android:src="@drawable/app_exit_icon"></ImageView>
     </FrameLayout>
 

+ 25 - 0
app/src/main/res/layout/first_tip.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content">
+
+    <FrameLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@color/red">
+
+        <ImageView
+                android:layout_width="100dp"
+                android:layout_height="200dp"
+                android:layout_gravity="center"
+                android:src="@drawable/first_scallbar"></ImageView>
+
+        <ImageView
+                android:id="@+id/first_touch"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:layout_marginLeft="30dp"
+                android:src="@drawable/first_touch"></ImageView>
+    </FrameLayout>
+</FrameLayout>

+ 3 - 3
app/src/main/res/layout/fragment_main_character.xml

@@ -5,7 +5,7 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_gravity="center"
-        android:layout_marginLeft="30dp"
+        android:layout_marginLeft="25dp"
         android:paddingTop="30dp">
 
 
@@ -27,7 +27,7 @@
                     android:layout_height="match_parent">
 
                 <LinearLayout
-                        android:layout_width="376dp"
+                        android:layout_width="326dp"
                         android:layout_height="match_parent"
                         android:divider="@drawable/fragment_user_info_divider"
                         android:orientation="vertical"
@@ -58,7 +58,7 @@
                     android:layout_height="match_parent"
                     android:divider="@drawable/fragment_user_info_divider"
                     android:orientation="vertical"
-                    android:paddingLeft="50dp"
+                    android:paddingLeft="30dp"
                     android:showDividers="middle">
 
                 <TextView

+ 1 - 1
app/src/main/res/layout/fragment_main_user.xml

@@ -5,7 +5,7 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_gravity="center"
-        android:layout_marginLeft="30dp"
+        android:layout_marginLeft="25dp"
         android:paddingTop="30dp">