Browse Source

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

hy 3 years ago
parent
commit
610a995f96

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

116
116
117
public class ZhanCommentActivity extends AppCompatActivity implements View.OnClickListener, EasyPermissions.PermissionCallbacks {
117
public class ZhanCommentActivity extends AppCompatActivity implements View.OnClickListener, EasyPermissions.PermissionCallbacks {
118
    private static final String TAG = "ZhanCommentActivity";
118
    private static final String TAG = "ZhanCommentActivity";
119
    private static final int PIC_NUM = 1;
119
    private static final int PIC_NUM = 3;
120
    private ProgressDialog insertDialog;
120
    private ProgressDialog insertDialog;
121
    public static CommentsBean commentsBean;
121
    public static CommentsBean commentsBean;
122
    private IntentFilter intentFilter;
122
    private IntentFilter intentFilter;
129
    private String star_level = "";
129
    private String star_level = "";
130
    private String show_txt = "";
130
    private String show_txt = "";
131
    private RelativeLayout rl_huodong, rl_point;
131
    private RelativeLayout rl_huodong, rl_point;
132
    private LinearLayout layoutHint;
132
    private RatingBarView ratingBarView;
133
    private RatingBarView ratingBarView;
133
    private ImageView iv_back;
134
    private ImageView iv_back;
134
    private LoadingDialog dialog;
135
    private LoadingDialog dialog;
138
    List<String> list;
139
    List<String> list;
139
    private String select_s = "";
140
    private String select_s = "";
140
    private String select_ss = "";
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
    private static String PHOTO_FILE_NAME = "";
144
    private static String PHOTO_FILE_NAME = "";
144
    private static final String PHOTO_FILE_PATH = getPath(PhotoUtils.CACHE_DIR);
145
    private static final String PHOTO_FILE_PATH = getPath(PhotoUtils.CACHE_DIR);
158
    private InputMethodManager imm = null;
159
    private InputMethodManager imm = null;
159
    private static final int RC_ALBUM_PERM = 123;
160
    private static final int RC_ALBUM_PERM = 123;
160
    public static final int REQUEST_CODE_CHOOSE = 336;
161
    public static final int REQUEST_CODE_CHOOSE = 336;
162
    public static final int REQUEST_VIDEO_CODE_CHOOSE = 337;
161
    private final Gson mGson=new Gson();
163
    private final Gson mGson=new Gson();
162
    Handler handler = new Handler() {
164
    Handler handler = new Handler() {
163
        public void handleMessage(Message msg) {
165
        public void handleMessage(Message msg) {
222
        insertDialog.setMessage("正在插入图片...");
224
        insertDialog.setMessage("正在插入图片...");
223
        insertDialog.setCanceledOnTouchOutside(false);
225
        insertDialog.setCanceledOnTouchOutside(false);
224
        rl_point = (RelativeLayout) findViewById(R.id.rl_point);
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
        tv_point = (TextView) findViewById(R.id.tv_point);
232
        tv_point = (TextView) findViewById(R.id.tv_point);
226
        tv_zhan_name = (TextView) findViewById(R.id.tv_zhan_name);
233
        tv_zhan_name = (TextView) findViewById(R.id.tv_zhan_name);
227
        topicText = (TextView) findViewById(R.id.topicText);
234
        topicText = (TextView) findViewById(R.id.topicText);
493
    private void callGallery() {
500
    private void callGallery() {
494
        PictureSelector.create(this)
501
        PictureSelector.create(this)
495
                .openGallery(PictureMimeType.ofImage())
502
                .openGallery(PictureMimeType.ofImage())
496
                .maxSelectNum(PIC_NUM)
503
                .maxSelectNum(PIC_NUM - Bimp.tempSelectBitmap.size())
497
                .selectionMode(PictureConfig.MULTIPLE)
504
                .selectionMode(PictureConfig.MULTIPLE)
498
                .selectionData(mSelectionData)//是否传入已选图片
505
                .selectionData(mSelectionData)//是否传入已选图片
499
                .isCompress(true)//是否压缩
506
                .isCompress(true)//是否压缩
521
                if (requestCode == 1) {
528
                if (requestCode == 1) {
522
                    //处理调用系统图库
529
                    //处理调用系统图库
523
                } else if (requestCode == REQUEST_CODE_CHOOSE) {
530
                } else if (requestCode == REQUEST_CODE_CHOOSE) {
531
                    noScrollgridview.setVisibility(View.VISIBLE);
532
                    layoutHint.setVisibility(View.GONE);
524
                    //异步方式插入图片
533
                    //异步方式插入图片
525
                    insertImagesSync(data);
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
        }else if  (requestCode==REQUEST_TOPIC_CODE && resultCode == SelectTopicActivity.REESULT_CODE){
541
        }else if  (requestCode==REQUEST_TOPIC_CODE && resultCode == SelectTopicActivity.REESULT_CODE){
862
            case R.id.iv_back:
875
            case R.id.iv_back:
863
                finish();
876
                finish();
864
                break;
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
    @Override
936
    @Override
869
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
937
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
870
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
938
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
997
1065
998
            if (position == Bimp.tempSelectBitmap.size()) {
1066
            if (position == Bimp.tempSelectBitmap.size()) {
999
                holder.image.setImageBitmap(BitmapFactory.decodeResource(
1067
                holder.image.setImageBitmap(BitmapFactory.decodeResource(
1000
                        getResources(), R.drawable.icon_comment_upload));
1068
                        getResources(), R.drawable.actionsheet_middle_selector));
1001
                if (position == 1) {
1069
                if (position == 1) {
1002
                    holder.image.setVisibility(View.GONE);
1070
                    holder.image.setVisibility(View.GONE);
1003
                }
1071
                }

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

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
                android:text="╋  话题"
214
                android:text="╋  话题"
215
                android:textColor="#ff0e0e0e"
215
                android:textColor="#ff0e0e0e"
216
                android:textSize="13sp" />
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
            <GridView
249
            <GridView
250
                android:visibility="gone"
220
                android:id="@+id/noScrollgridview"
251
                android:id="@+id/noScrollgridview"
221
                android:layout_width="match_parent"
252
                android:layout_width="match_parent"
222
                android:layout_height="wrap_content"
253
                android:layout_height="wrap_content"
301
                android:textSize="13sp" />
332
                android:textSize="13sp" />
302
        </LinearLayout>
333
        </LinearLayout>
303
    </RelativeLayout>
334
    </RelativeLayout>
335
336
304
</com.zhy.autolayout.AutoRelativeLayout>
337
</com.zhy.autolayout.AutoRelativeLayout>

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

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>