Skip to content

03 拼图(单独使用)

桓谭生 edited this page Sep 25, 2019 · 5 revisions

启动拼图


无需考虑运行时权限

  • 对Photo集合进行拼图
    /**
     * 启动拼图(最多对9张图片进行拼图)
     *
     * @param act            上下文
     * @param photos         图片集合(最多对9张图片进行拼图)
     * @param puzzleSaveDirPath    拼图完成保存的文件夹全路径
     * @param puzzleSaveNamePrefix 拼图完成保存的文件名前缀,最终格式:前缀+默认生成唯一数字标识+.png
     * @param requestCode    请求code
     * @param replaceCustom  单击替换拼图中的某张图片时,是否以startForResult的方式启动你的自定义界面,该界面与传进来的act为同一界面。false则在EasyPhotos内部完成,正常需求直接写false即可。 true的情况适用于:用于拼图的图片集合中包含网络图片,是在你的act界面中获取并下载的(也可以直接用网络地址,不用下载后的本地地址,也就是可以不下载下来),而非单纯本地相册。举例:你的act中有两个按钮,一个指向本地相册,一个指向网络相册,用户在该界面任意选择,选择好图片后跳转到拼图界面,用户在拼图界面点击替换按钮,将会启动一个新的act界面,这时,act只让用户在网络相册和本地相册选择一张图片,选择好执行
     *                       Intent intent = new Intent();
     *                       intent.putParcelableArrayListExtra(EasyPhotos.RESULT_PHOTOS , photos);
     *                       act.setResult(RESULT_OK,intent); 并关闭act,回到拼图界面,完成替换。
     * @param imageEngine          图片加载引擎的具体实现
     */

    EasyPhotos.startPuzzleWithPhotos(Activity act, ArrayList<Photo> photos, String puzzleSaveDirPath, String puzzleSaveNamePrefix, int requestCode, boolean replaceCustom, @NonNull ImageEngine imageEngine);    
    

回调

在启动拼图的activity的onActivityResult中回调

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);    

        if(null == data){
           //处理错误,错误原因大多因为存储空间不足而保存失败
           return;
        }

        Photo puzzlePhoto = data.getParcelableExtra(EasyPhotos.RESULT_PHOTOS); //获取拼图文件的Photo对象   
    }