rk
昨天 4a8ff39b0fab0627ef8f7459587d514cc01c3676
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package com.doumee.keyCabinet.utils;
 
import android.app.Activity;
import android.graphics.Color;
import android.widget.Toast;
 
import com.doumee.keyCabinet.R;
import com.doumee.keyCabinet.utils.update.PermissionUtils;
import com.doumee.keyCabinet.utils.update.PermissiondDialog;
import com.yanzhenjie.permission.runtime.Permission;
import com.yuyh.library.imgsel.ISNav;
import com.yuyh.library.imgsel.config.ISCameraConfig;
import com.yuyh.library.imgsel.config.ISListConfig;
 
import java.util.List;
 
public class PhotoUtils {
    public static final int REQUEST_LIST_CODE = 144;
    private Activity activity;
    private Object source;//activity、fragment
    private int count;
 
    public PhotoUtils(Activity activity, Object source) {
        this.activity = activity;
        this.source = source;
    }
 
    public void getPhoto(int count){
        this.count=count;
        getPermision(false);
    }
 
    public void getCamera(){
        this.count=1;
        getPermision(true);
    }
 
    private void getPermision(boolean isToCamera) {
        PermissionUtils.getPermission(activity, new PermissionUtils.CallBack() {
            @Override
            public void sucess() {
                if(isToCamera) {
                    toCamera();
                }else {
                    selectPic();
                }
            }
 
            @Override
            public void fail(List<String> permissions) {
                showNoPermissionTip();
            }
        }, new String[]{Permission.CAMERA});
    }
 
    private PermissiondDialog permissiondDialog;
 
    /**
     * 没有权限的提醒
     */
    private void showNoPermissionTip() {
        try {
            Toast.makeText(activity, activity.getString(R.string.buy_view_27), Toast.LENGTH_LONG).show();
            if (permissiondDialog == null) {
                permissiondDialog = new PermissiondDialog(activity, activity.getString(R.string.help), activity.getString(R.string.permiss_3), activity.getString(R.string.cancel),
                        activity.getString(R.string.empower), new PermissiondDialog.OnClickListener() {
                    @Override
                    public void clickOk() {
                        permissiondDialog.dismiss();
                        PermissionUtils.gotoPermission(activity);
                    }
 
                    @Override
                    public void clickNo() {
                        permissiondDialog.dismiss();
                    }
                });
            }
            if (!permissiondDialog.isShowing()) {
                permissiondDialog.show();
            }
        } catch (Exception e) {
 
        }
    }
 
    private void selectPic() {
        // 自由配置选项
        ISListConfig config = new ISListConfig.Builder()
                // 是否多选, 默认true
                .multiSelect(count!=1)
                // 是否记住上次选中记录, 仅当multiSelect为true的时候配置,默认为true
                .rememberSelected(false)
                // “确定”按钮背景色
                .btnBgColor(Color.GRAY)
                // “确定”按钮文字颜色
                .btnTextColor(Color.BLUE)
                // 使用沉浸式状态栏
                .statusBarColor(Color.parseColor("#0CC9A1"))
                // 返回图标ResId
                .backResId(R.mipmap.back)
                // 标题
                .title(activity.getString(R.string.pic))
                // 标题文字颜色
                .titleColor(Color.WHITE)
                // TitleBar背景色
                .titleBgColor(Color.parseColor("#0CC9A1"))
                // 裁剪大小。needCrop为true的时候配置
                //.cropSize(1, 1, 200, 200)
                .needCrop(false)
                // 第一个是否显示相机,默认true
                .needCamera(true)
                // 最大选择图片数量,默认9
                .maxNum(count)
                .build();
 
        // 跳转到图片选择器
        ISNav.getInstance().toListActivity(source, config, REQUEST_LIST_CODE);
    }
 
    private void toCamera() {
        // 自由配置选项
        ISCameraConfig config = new ISCameraConfig.Builder()
                // 裁剪大小。needCrop为true的时候配置
                .cropSize(1, 1, 300, 300)
                .needCrop(true)
                .build();
 
        // 跳转到图片选择器
        ISNav.getInstance().toCameraActivity(source, config, REQUEST_LIST_CODE);
    }
}