Browse Source

完成图片视频逻辑,删除无用代码

hy 2 years ago
parent
commit
610a995f96

+ 72 - 4
app/src/main/java/com/electric/chargingpile/activity/ZhanCommentActivity.java

@ -116,7 +116,7 @@ import static android.text.Html.FROM_HTML_MODE_LEGACY;
116 116
117 117
public class ZhanCommentActivity extends AppCompatActivity implements View.OnClickListener, EasyPermissions.PermissionCallbacks {
118 118
    private static final String TAG = "ZhanCommentActivity";
119
    private static final int PIC_NUM = 1;
119
    private static final int PIC_NUM = 3;
120 120
    private ProgressDialog insertDialog;
121 121
    public static CommentsBean commentsBean;
122 122
    private IntentFilter intentFilter;
@ -129,6 +129,7 @@ public class ZhanCommentActivity extends AppCompatActivity implements View.OnCli
129 129
    private String star_level = "";
130 130
    private String show_txt = "";
131 131
    private RelativeLayout rl_huodong, rl_point;
132
    private LinearLayout layoutHint;
132 133
    private RatingBarView ratingBarView;
133 134
    private ImageView iv_back;
134 135
    private LoadingDialog dialog;
@ -138,7 +139,7 @@ public class ZhanCommentActivity extends AppCompatActivity implements View.OnCli
138 139
    List<String> list;
139 140
    private String select_s = "";
140 141
    private String select_ss = "";
141
    private TextView tv_grade, tv_point,tv_zhan_name,topicText;
142
    private TextView tv_grade, tv_point,tv_zhan_name,topicText,commentHint;
142 143
143 144
    private static String PHOTO_FILE_NAME = "";
144 145
    private static final String PHOTO_FILE_PATH = getPath(PhotoUtils.CACHE_DIR);
@ -158,6 +159,7 @@ public class ZhanCommentActivity extends AppCompatActivity implements View.OnCli
158 159
    private InputMethodManager imm = null;
159 160
    private static final int RC_ALBUM_PERM = 123;
160 161
    public static final int REQUEST_CODE_CHOOSE = 336;
162
    public static final int REQUEST_VIDEO_CODE_CHOOSE = 337;
161 163
    private final Gson mGson=new Gson();
162 164
    Handler handler = new Handler() {
163 165
        public void handleMessage(Message msg) {
@ -222,6 +224,11 @@ public class ZhanCommentActivity extends AppCompatActivity implements View.OnCli
222 224
        insertDialog.setMessage("正在插入图片...");
223 225
        insertDialog.setCanceledOnTouchOutside(false);
224 226
        rl_point = (RelativeLayout) findViewById(R.id.rl_point);
227
        layoutHint = (LinearLayout) findViewById(R.id.layoutHint);
228
        findViewById(R.id.imgUpload).setOnClickListener(this);
229
        findViewById(R.id.videoUpLoad).setOnClickListener(this);
230
        commentHint = (TextView) findViewById(R.id.commentHint);
231
        commentHint.setText(Html.fromHtml("30字以上+图片或15s视频有机会被<font color='#3EC34C'>评为优质评论获得充电优惠券</font>",FROM_HTML_MODE_LEGACY));
225 232
        tv_point = (TextView) findViewById(R.id.tv_point);
226 233
        tv_zhan_name = (TextView) findViewById(R.id.tv_zhan_name);
227 234
        topicText = (TextView) findViewById(R.id.topicText);
@ -493,7 +500,7 @@ public class ZhanCommentActivity extends AppCompatActivity implements View.OnCli
493 500
    private void callGallery() {
494 501
        PictureSelector.create(this)
495 502
                .openGallery(PictureMimeType.ofImage())
496
                .maxSelectNum(PIC_NUM)
503
                .maxSelectNum(PIC_NUM - Bimp.tempSelectBitmap.size())
497 504
                .selectionMode(PictureConfig.MULTIPLE)
498 505
                .selectionData(mSelectionData)//是否传入已选图片
499 506
                .isCompress(true)//是否压缩
@ -521,8 +528,14 @@ public class ZhanCommentActivity extends AppCompatActivity implements View.OnCli
521 528
                if (requestCode == 1) {
522 529
                    //处理调用系统图库
523 530
                } else if (requestCode == REQUEST_CODE_CHOOSE) {
531
                    noScrollgridview.setVisibility(View.VISIBLE);
532
                    layoutHint.setVisibility(View.GONE);
524 533
                    //异步方式插入图片
525 534
                    insertImagesSync(data);
535
                } else if (requestCode == REQUEST_VIDEO_CODE_CHOOSE) {
536
                    //异步方式插入图片
537
                    noScrollgridview.setVisibility(View.VISIBLE);
538
                    layoutHint.setVisibility(View.GONE);
526 539
                }
527 540
            }
528 541
        }else if  (requestCode==REQUEST_TOPIC_CODE && resultCode == SelectTopicActivity.REESULT_CODE){
@ -862,9 +875,64 @@ public class ZhanCommentActivity extends AppCompatActivity implements View.OnCli
862 875
            case R.id.iv_back:
863 876
                finish();
864 877
                break;
878
            case R.id.videoUpLoad:
879
                openVideo();
880
                break;
881
882
            case R.id.imgUpload:
883
                openImg();
884
                break;
865 885
        }
866 886
    }
867 887
888
    private void openImg(){
889
        PictureSelector.create(this)
890
                .openGallery(PictureMimeType.ofImage())
891
                .maxSelectNum(PIC_NUM)
892
                .selectionMode(PictureConfig.MULTIPLE)
893
                .selectionData(mSelectionData)//是否传入已选图片
894
                .isCompress(true)//是否压缩
895
                .isPreviewEggs(true)//预览图片时是否增强左右滑动图片体验
896
                .isGif(true)//是否显示gif
897
                .isAndroidQTransform(true)
898
                .imageEngine(GlideEngine.createGlideEngine())
899
                .isWeChatStyle(false)// 是否开启微信图片选择风格
900
                .isUseCustomCamera(false)// 是否使用自定义相机
901
                .isPageStrategy(true)// 是否开启分页策略 & 每页多少条;默认开启
902
                .setPictureStyle(Util.getWhiteStyle(this))// 动态自定义相册主题
903
                .setRecyclerAnimationMode(AnimationType.SLIDE_IN_BOTTOM_ANIMATION)// 列表动画效果
904
                .isMaxSelectEnabledMask(true)// 选择数到了最大阀值列表是否启用蒙层效果
905
                .imageSpanCount(4)// 每行显示个数
906
                .isReturnEmpty(false)// 未选择数据时点击按钮是否可以返回
907
                .isAutomaticTitleRecyclerTop(true)//图片列表超过一屏连续点击顶部标题栏快速回滚至顶部
908
                .forResult(REQUEST_CODE_CHOOSE);
909
    }
910
    private void openVideo(){
911
        PictureSelector.create(this)
912
                .openGallery(PictureMimeType.ofVideo())
913
                .selectionMode(PictureConfig.SINGLE)
914
                .isCompress(true)//是否压缩
915
                .isPreviewEggs(true)//预览图片时是否增强左右滑动图片体验
916
                .isAndroidQTransform(true)
917
                .imageEngine(GlideEngine.createGlideEngine())
918
                .isWeChatStyle(false)// 是否开启微信图片选择风格
919
                .isUseCustomCamera(false)// 是否使用自定义相机
920
                .isPageStrategy(true)// 是否开启分页策略 & 每页多少条;默认开启
921
                .setPictureStyle(Util.getWhiteStyle(this))// 动态自定义相册主题
922
                .setRecyclerAnimationMode(AnimationType.SLIDE_IN_BOTTOM_ANIMATION)// 列表动画效果
923
                .isMaxSelectEnabledMask(true)// 选择数到了最大阀值列表是否启用蒙层效果
924
                .imageSpanCount(4)// 每行显示个数
925
                .isReturnEmpty(false)// 未选择数据时点击按钮是否可以返回
926
                .isAutomaticTitleRecyclerTop(true)//图片列表超过一屏连续点击顶部标题栏快速回滚至顶部
927
                .videoMaxSecond(16)   // 查询多少秒以内的视频
928
                .videoMinSecond(2)   // 查询多少秒以内的视频
929
                .recordVideoSecond(15)//录制视频秒数 默认60s
930
                .isPreviewVideo(true)//是否预览视频
931
                .isSingleDirectReturn(true)//PictureConfig.SINGLE模式下是否直接返回
932
              //  .filterMaxFileSize(100)//查询指定大小内的图片、视频、音频大小,单位M
933
                .forResult(REQUEST_VIDEO_CODE_CHOOSE);
934
    }
935
868 936
    @Override
869 937
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
870 938
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
@ -997,7 +1065,7 @@ public class ZhanCommentActivity extends AppCompatActivity implements View.OnCli
997 1065
998 1066
            if (position == Bimp.tempSelectBitmap.size()) {
999 1067
                holder.image.setImageBitmap(BitmapFactory.decodeResource(
1000
                        getResources(), R.drawable.icon_comment_upload));
1068
                        getResources(), R.drawable.actionsheet_middle_selector));
1001 1069
                if (position == 1) {
1002 1070
                    holder.image.setVisibility(View.GONE);
1003 1071
                }

+ 116 - 0
app/src/main/java/com/electric/chargingpile/adapter/GridImageAdapter.java

@ -0,0 +1,116 @@
1
package com.electric.chargingpile.adapter;
2
3
import android.content.Context;
4
import android.view.LayoutInflater;
5
import android.view.View;
6
import android.view.ViewGroup;
7
import android.widget.ImageView;
8
9
import androidx.annotation.NonNull;
10
import androidx.recyclerview.widget.GridLayoutManager;
11
import androidx.recyclerview.widget.RecyclerView;
12
13
import com.bumptech.glide.Glide;
14
import com.electric.chargingpile.R;
15
import com.luck.picture.lib.entity.LocalMedia;
16
17
import org.jetbrains.annotations.NotNull;
18
19
import java.util.ArrayList;
20
21
public class GridImageAdapter extends RecyclerView.Adapter<GridImageAdapter.ViewHolder> {
22
    private ArrayList<LocalMedia> mDatas=new ArrayList<>();
23
    private Context context;
24
    private int maxCount=9;
25
    private int mItemWidth=0;
26
    private int mItemMarginTop=0;
27
28
    public GridImageAdapter(Context context, int maxCount, int mItemWidth,int mItemMarginTop) {
29
        this.context = context;
30
        this.maxCount = maxCount;
31
        this.mItemWidth = mItemWidth;
32
33
        this.mItemMarginTop = mItemMarginTop;
34
    }
35
36
37
    public ArrayList<LocalMedia> getDatas() {
38
        return mDatas;
39
    }
40
41
    public void setDatas(ArrayList<LocalMedia> mDatas) {
42
        this.mDatas = mDatas;
43
        notifyDataSetChanged();
44
    }
45
46
    @NonNull
47
    @NotNull
48
    @Override
49
    public ViewHolder onCreateViewHolder(@NonNull @NotNull ViewGroup parent, int viewType) {
50
        View rootView = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_item_add_img, parent, false);
51
//        GridLayoutManager.LayoutParams layoutParams = (GridLayoutManager.LayoutParams) rootView.getLayoutParams();
52
//        layoutParams.width=mItemWidth;
53
//        layoutParams.height=mItemWidth;
54
//        layoutParams.topMargin = mItemMarginTop;
55
//        rootView.setLayoutParams(layoutParams);
56
        return new ViewHolder(rootView);
57
    }
58
59
    @Override
60
    public void onBindViewHolder(@NonNull @NotNull ViewHolder holder, int position) {
61
62
        if (position == getItemCount() - 1 && mDatas.size() < maxCount) {
63
64
            //进行添加
65
            holder.itemView.setOnClickListener(v->{
66
                //mItemAddOnClick?.invoke();
67
            });
68
            holder.imageView.setImageResource(R.drawable.actionsheet_middle_selector);
69
            holder.remove.setVisibility( View.GONE);
70
        } else {
71
72
            String path="";
73
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q)
74
                path=mDatas.get(position).getAndroidQToPath();
75
            else {
76
                path=mDatas.get(position).getPath();
77
            }
78
79
80
            Glide.with(context)
81
                    .load(path)
82
                    .into(holder.imageView);
83
            holder.remove.setVisibility( View.VISIBLE);
84
            holder.remove.setOnClickListener(v->{
85
                //删除
86
            });
87
88
            holder.itemView.setOnClickListener(v->{
89
                //跳转至图片详情页
90
              //  mItemOpenOnClick?.invoke(position)
91
            });
92
        }
93
94
    }
95
96
    @Override
97
    public int getItemCount() {
98
        if (mDatas.size() >= maxCount) {
99
            return maxCount;
100
        } else {
101
            return mDatas.size() + 1;
102
        }
103
    }
104
105
    public static class ViewHolder extends RecyclerView.ViewHolder {
106
107
        private final ImageView remove;
108
        private final ImageView imageView;
109
110
        public ViewHolder(@NonNull @NotNull View itemView) {
111
            super(itemView);
112
            imageView = itemView.findViewById(R.id.image);
113
            remove = itemView.findViewById(R.id.remove);
114
        }
115
    }
116
}

BIN
app/src/main/res/drawable-xxhdpi/ic_comment_video_upload.webp


+ 33 - 0
app/src/main/res/layout/activity_zhan_comment.xml

@ -214,9 +214,40 @@
214 214
                android:text="╋  话题"
215 215
                android:textColor="#ff0e0e0e"
216 216
                android:textSize="13sp" />
217
            <LinearLayout
218
                android:id="@+id/layoutHint"
219
                android:layout_marginEnd="15dp"
220
                android:layout_marginStart="15dp"
221
                android:layout_width="wrap_content"
222
                android:layout_height="wrap_content">
223
224
                <ImageView
225
                    android:id="@+id/imgUpload"
226
                    android:src="@drawable/icon_comment_upload"
227
                    android:layout_width="wrap_content"
228
                    android:layout_height="wrap_content"/>
229
230
                <ImageView
231
                    android:id="@+id/videoUpLoad"
232
                    android:layout_marginStart="12dp"
233
                    android:src="@drawable/ic_comment_video_upload"
234
                    android:layout_width="wrap_content"
235
                    android:layout_height="wrap_content"/>
217 236
237
                <TextView
238
                    android:id="@+id/commentHint"
239
                    android:layout_marginStart="12dp"
240
                    android:gravity="bottom"
241
                    android:layout_width="wrap_content"
242
                    android:layout_height="match_parent"
243
                    tools:text="30字以上+图片或15s视频有机会被评为优质评论获得充电优惠券"
244
                    android:textColor="#ff7a7a7a"
245
                    android:textSize="12sp"
246
                    />
247
            </LinearLayout>
218 248
219 249
            <GridView
250
                android:visibility="gone"
220 251
                android:id="@+id/noScrollgridview"
221 252
                android:layout_width="match_parent"
222 253
                android:layout_height="wrap_content"
@ -301,4 +332,6 @@
301 332
                android:textSize="13sp" />
302 333
        </LinearLayout>
303 334
    </RelativeLayout>
335
336
304 337
</com.zhy.autolayout.AutoRelativeLayout>

+ 18 - 0
app/src/main/res/layout/layout_item_add_img.xml

@ -0,0 +1,18 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
3
    android:layout_width="match_parent"
4
    android:layout_height="match_parent">
5
    <ImageView
6
        android:id="@+id/image"
7
        android:scaleType="centerCrop"
8
        android:layout_centerInParent="true"
9
        android:layout_width="match_parent"
10
        android:layout_height="match_parent"/>
11
    <ImageView
12
        android:padding="8dp"
13
        android:id="@+id/remove"
14
        android:layout_alignParentEnd="true"
15
        android:src="@drawable/icon_close"
16
        android:layout_width="wrap_content"
17
        android:layout_height="wrap_content"/>
18
</RelativeLayout>