de">
        return EasyPermissions.hasPermissions(this,
980 981
                Manifest.permission.WRITE_EXTERNAL_STORAGE,
981
                Manifest.permission.READ_EXTERNAL_STORAGE
982
                Manifest.permission.READ_EXTERNAL_STORAGE,
983
                Manifest.permission.CAMERA
982 984
        );
983 985
    }
984 986

+ 0 - 18
app/src/main/java/com/electric/chargingpile/activity/UserInfoActivity.java

@ -553,7 +553,6 @@ public class UserInfoActivity extends Activity implements View.OnClickListener,
553 553
     * 调用图库选择
554 554
     */
555 555
    private void callGallery() {
556
//        Log.e(TAG, "callGallery: "+ (Bimp.max - Bimp.tempSelectBitmap.size() ));
557 556
        //调用第三方图库选择
558 557
        PhotoPicker.builder()
559 558
                .setPhotoCount(1)//可选择图片数量
@ -635,14 +634,6 @@ public class UserInfoActivity extends Activity implements View.OnClickListener,
635 634
        });
636 635
        // 设置PopupWindow的弹出和消失效果
637 636
        popupWindow.setAnimationStyle(R.style.popupAnimation);
638
//                confirmButton = (Button) popupWindowView
639
//                        .findViewById(R.id.confirmButton);
640
//                confirmButton.setOnClickListener(new OnClickListener() {
641
//                    @Override
642
//                    public void onClick(View view) {
643
//                        popupWindow.dismiss();
644
//                    }
645
//                });
646 637
        cancleButton = (Button) popupWindowView
647 638
                .findViewById(R.id.cancleButton);
648 639
        cancleButton.setOnClickListener(new View.OnClickListener() {
@ -702,10 +693,6 @@ public class UserInfoActivity extends Activity implements View.OnClickListener,
702 693
                Bitmap bm = imageZoom(photo);
703 694
                ss = bitmapToBase64(bm);
704 695
            }
705
//            else{
706
//                ss =bitmapToBase64(selectbm);
707
//            }
708
709 696
            par.put("file", ss);
710 697
            par.put("filename", "androidapp.jpg");
711 698
        } catch (Exception e) {
@ -762,8 +749,6 @@ public class UserInfoActivity extends Activity implements View.OnClickListener,
762 749
    @AfterPermissionGranted(RC_CAMERA_PERM)
763 750
    public void cameraTask() {
764 751
        if (hasCameraPermission()) {
765
            // Have permission, do the thing!
766
//            Toast.makeText(this, "TODO: Camera things", Toast.LENGTH_LONG).show();
767 752
            showWindow();
768 753
        } else {
769 754
            // Ask for one permission
@ -804,9 +789,6 @@ public class UserInfoActivity extends Activity implements View.OnClickListener,
804 789
         */
805 790
        Intent intent = new Intent("com.android.camera.action.CROP");
806 791
        intent.setDataAndType(uri, "image/*");
807
//        Uri cropUri = Uri.fromFile(new File(
808
//                Environment.getExternalStorageDirectory() + "cdz_icon.png"));
809
//        intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
810 792
        intent.putExtra("crop", "true");
811 793
        // aspectX aspectY 是宽高的比例
812 794
        intent.putExtra("aspectX", 1);

+ 29 - 32
app/src/main/java/com/electric/chargingpile/activity/ZhanCommentActivity.java

@ -51,6 +51,7 @@ import com.electric.chargingpile.data.RObject;
51 51
import com.electric.chargingpile.util.BarColorUtil;
52 52
import com.electric.chargingpile.util.Bimp;
53 53
import com.electric.chargingpile.util.DES3;
54
import com.electric.chargingpile.util.FileUtils;
54 55
import com.electric.chargingpile.util.ImageItem;
55 56
import com.electric.chargingpile.util.ImageUtils;
56 57
import com.electric.chargingpile.util.JsonUtils;
@ -64,6 +65,10 @@ import com.electric.chargingpile.util.ToastUtil;
64 65
import com.electric.chargingpile.util.UploadUtil;
65 66
import com.electric.chargingpile.view.REditText;
66 67
import com.electric.chargingpile.view.RatingBarView;
68
import com.zhihu.matisse.Matisse;
69
import com.zhihu.matisse.MimeType;
70
import com.zhihu.matisse.engine.impl.GlideEngine;
71
import com.zhihu.matisse.internal.entity.CaptureStrategy;
67 72
import com.zhy.http.okhttp.OkHttpUtils;
68 73
import com.zhy.http.okhttp.callback.StringCallback;
69 74
import com.zhy.view.flowlayout.FlowLayout;
@ -138,6 +143,7 @@ public class ZhanCommentActivity extends Activity implements View.OnClickListene
138 143
    public static ImageView point;
139 144
    private InputMethodManager imm = null;
140 145
    private static final int RC_ALBUM_PERM = 123;
146
    public static final int REQUEST_CODE_CHOOSE = 336;
141 147
    Handler handler = new Handler() {
142 148
        public void handleMessage(Message msg) {
143 149
            switch (msg.what) {
@ -543,16 +549,14 @@ public class ZhanCommentActivity extends Activity implements View.OnClickListene
543 549
     * 调用图库选择
544 550
     */
545 551
    private void callGallery() {
546
        Log.e(TAG, "callGallery: " + (Bimp.max - Bimp.tempSelectBitmap.size()));
547
        //调用第三方图库选择
548
        PhotoPicker.builder()
549
                .setPhotoCount(PIC_NUM - Bimp.tempSelectBitmap.size())//可选择图片数量
550
                .setShowCamera(true)//是否显示拍照按钮
551
                .setShowGif(true)//是否显示动态图
552
                .setPreviewEnabled(true)//是否可以预览
553
                .start(this, PhotoPicker.REQUEST_CODE);
554
555
552
        Matisse.from(ZhanCommentActivity.this)
553
                .choose(MimeType.of(MimeType.JPEG, MimeType.PNG, MimeType.GIF))
554
                .countable(true)
555
                .maxSelectable(PIC_NUM - Bimp.tempSelectBitmap.size())
556
                .capture(true)
557
                .captureStrategy(new CaptureStrategy(true, "com.electric.chargingpile.provider"))
558
                .imageEngine(new GlideEngine())
559
                .forResult(REQUEST_CODE_CHOOSE);
556 560
    }
557 561
558 562
    @Override
@ -562,7 +566,7 @@ public class ZhanCommentActivity extends Activity implements View.OnClickListene
562 566
            if (data != null) {
563 567
                if (requestCode == 1) {
564 568
                    //处理调用系统图库
565
                } else if (requestCode == PhotoPicker.REQUEST_CODE) {
569
                } else if (requestCode == REQUEST_CODE_CHOOSE) {
566 570
                    //异步方式插入图片
567 571
                    insertImagesSync(data);
568 572
                }
@ -581,24 +585,17 @@ public class ZhanCommentActivity extends Activity implements View.OnClickListene
581 585
            @Override
582 586
            public void subscribe(ObservableEmitter<String> subscriber) throws Exception {
583 587
                try {
584
                    ArrayList<String> photos = data.getStringArrayListExtra(PhotoPicker.KEY_SELECTED_PHOTOS);
585
                    //可以同时插入多张图片
586
                    for (String imagePath : photos) {
587
588
                        Log.e(TAG, "call: imagePath " + imagePath);
589
                        Bitmap bitmap = BitmapFactory.decodeFile(imagePath);//压缩图片
590
                        if (ImageUtils.readPictureDegree(imagePath) != 0) {
591
                            bitmap = imageZoom(ImageUtils.toturn(bitmap));
592
                        } else {
593
                            bitmap = imageZoom(bitmap);
594
                        }
588
                    List<Uri> uriList = Matisse.obtainResult(data);
589
                    for (Uri uri : uriList) {
590
                        Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));
591
                        File file = FileUtils.from(ZhanCommentActivity.this, uri);
592
593
                        bitmap = FileUtils.rotateIfRequired(file, bitmap);
594
                        bitmap = imageZoom(bitmap);
595 595
                        ImageItem takePhoto = new ImageItem();
596 596
                        takePhoto.setBitmap(bitmap);
597
                        takePhoto.setImagePath(imagePath);
598 597
                        Bimp.tempSelectBitmap.add(takePhoto);
599
//
600
//                        Log.e(TAG, "call: "+imagePath );
601
                        subscriber.onNext(imagePath);
598
                        subscriber.onNext("");
602 599
                    }
603 600
                    subscriber.onComplete();
604 601
                } catch (Exception e) {
@ -629,7 +626,8 @@ public class ZhanCommentActivity extends Activity implements View.OnClickListene
629 626
                    }
630 627
631 628
                    @Override
632
                    public void onComplete() {   Log.e(TAG, "onCompleted: -------------");
629
                    public void onComplete() {
630
                        Log.e(TAG, "onCompleted: -------------");
633 631
                        insertDialog.dismiss();
634 632
                        adapter.update();
635 633
@ -950,23 +948,22 @@ public class ZhanCommentActivity extends Activity implements View.OnClickListene
950 948
    public void permissionTask() {
951 949
        if (isPermissionOK()) {
952 950
            callGallery();
953
            // Have permission, do the thing!
954
//            Toast.makeText(this, "TODO: Camera things", Toast.LENGTH_LONG).show();
955
//            ifTimeout();
956 951
        } else {
957 952
            // Ask for one permission
958 953
            EasyPermissions.requestPermissions(
959 954
                    this, "充电桩想要获取您的图片读取权限,是否允许?",
960 955
                    RC_ALBUM_PERM,
961 956
                    Manifest.permission.WRITE_EXTERNAL_STORAGE,
962
                    Manifest.permission.READ_EXTERNAL_STORAGE);
957
                    Manifest.permission.READ_EXTERNAL_STORAGE,
958
                    Manifest.permission.CAMERA);
963 959
        }
964 960
    }
965 961
966 962
    private boolean isPermissionOK() {
967 963
        return EasyPermissions.hasPermissions(this,
968 964
                Manifest.permission.WRITE_EXTERNAL_STORAGE,
969
                Manifest.permission.READ_EXTERNAL_STORAGE
965
                Manifest.permission.READ_EXTERNAL_STORAGE,
966
                Manifest.permission.CAMERA
970 967
        );
971 968
    }
972 969

+ 0 - 2
app/src/main/java/com/electric/chargingpile/fragment/ChatRecommendFragment.java

@ -140,9 +140,7 @@ public class ChatRecommendFragment extends Fragment implements View.OnClickListe
140 140
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
141 141
        if (requestCode == ChatContentListActivity.REQUEST_CODE_CHAT_HOME) {
142 142
            Log.d(TAG, "onActivityResult: ");
143
//            ToastUtil.showToast(getContext(), "come on ", Toast.LENGTH_SHORT);
144 143
        }
145
//        ToastUtil.showToast(getContext(), "come on 2", Toast.LENGTH_SHORT);
146 144
    }
147 145
148 146
    private void initListener() {

+ 11 - 0
app/src/main/java/com/electric/chargingpile/util/FileUtils.java

@ -9,10 +9,12 @@ import android.net.Uri;
9 9
import android.os.Environment;
10 10
import android.provider.MediaStore;
11 11
import android.provider.OpenableColumns;
12
import android.util.Base64;
12 13
import android.util.Log;
13 14

14 15
import androidx.exifinterface.media.ExifInterface;
15 16

17
import java.io.ByteArrayOutputStream;
16 18
import java.io.File;
17 19
import java.io.FileNotFoundException;
18 20
import java.io.FileOutputStream;
@ -209,4 +211,13 @@ public class FileUtils {
209 211
        return count;
210 212
    }
211 213

214
    public static String bitmapToString(Bitmap bitmap) {
215
        String str = null;
216
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
217
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
218
        byte[] bytes = outputStream.toByteArray();
219
        str = Base64.encodeToString(bytes, Base64.DEFAULT);
220
        return str;
221
    }
222

212 223
}

+ 1 - 1
app/src/main/java/com/electric/chargingpile/view/xrichtext/RichTextView.java

@ -136,7 +136,7 @@ public class RichTextView extends ScrollView {
136 136
        final RelativeLayout imageLayout = createImageLayout();
137 137
        DataImageView imageView = (DataImageView) imageLayout.findViewById(R.id.edit_imageView);
138 138
        RequestOptions options = new RequestOptions().centerCrop();
139
        Glide.with(getContext()).load(imagePath).apply(options).into(imageView);
139
        Glide.with(getContext()).load(path).apply(options).into(imageView);
140 140
        //imageView.setImageBitmap(bmp);//这里改用Glide加载图片
141 141
        //imageView.setBitmap(bmp);//这句去掉,保留下面的图片地址即可,优化图片占用
142 142
//        imageView.setAbsolutePath(imagePath);//保留这句,后面保存数据会用

Войти - Gogs: Go Git Service

Войти