Loading

团队博客-第二阶段冲刺-Day10

团队博客-第二阶段冲刺-Day10
团队任务
  完成图片转表格app(TransformMine)的开发
1.统一,简约,漂亮的前端界面
2.完成用户主要功能的开发
3.优化用户体验
4.定时团队任务进行团队任务完成情况的审查
今日完成任务
1.修复最后的一些小bug

2.优化体验

3.测试app的所有功能,排查是否还有问题
4.初步定型,打包app

效果展示:

今日团队任务关键代码:

package com.transform.transformMine.fragment.other;

import static android.app.Activity.RESULT_OK;
import static com.xuexiang.xui.XUI.getContext;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.provider.MediaStore;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.transform.transformMine.R;
import com.transform.transformMine.core.BaseFragment;
import com.transform.transformMine.databinding.FragmentTransBinding;
import com.xuexiang.xpage.annotation.Page;
import com.xuexiang.xpage.enums.CoreAnim;
import com.xuexiang.xui.widget.imageview.crop.CropImageView;

import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;

@Page(anim = CoreAnim.none)
public class TransFragment extends BaseFragment<FragmentTransBinding> implements View.OnClickListener {

    CropImageView cropImageView ;
    public static final int REQUEST_CODE_PICK_IMAGE = 1;

    @NonNull
    @Override
    protected FragmentTransBinding viewBindingInflate(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, boolean attachToRoot) {
        return FragmentTransBinding.inflate(inflater, container, attachToRoot);
    }

    @Override
    protected void initViews() {
        cropImageView = findViewById(R.id.crop_image_view);
    }

    @Override
    protected void initListeners() {
        binding.btnUpload.setOnClickListener(this);
    }

    @SuppressLint("IntentReset")
    @Override
    public void onClick(View v) {
        int id = v.getId();
        if (id == R.id.btn_upload){
            Intent intent = new Intent(Intent.ACTION_PICK, null);
            intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");

            startActivityForResult(intent, REQUEST_CODE_PICK_IMAGE);
        }
    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
            case REQUEST_CODE_PICK_IMAGE:
                if (resultCode == RESULT_OK) {       //
                    if (data != null) {
                        
                        Uri uri = data.getData();
                        Bitmap bitmap1 = null;
                        try {
                            Bitmap bitmap = BitmapFactory.decodeStream(getContext().getContentResolver().openInputStream(uri));
                            bitmap1 = compressByJpeg(bitmap,50);
                        } catch (FileNotFoundException e) {
                            e.printStackTrace();
                        }
                        cropImageView.setImageBitmap(bitmap1);
                        String imagePath = uri.getPath();
                        
                        processImage(imagePath);
                    }
                }
                break;
        }
    }
   
    private Bitmap compressByJpeg(Bitmap bitmap, int quality) {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outputStream);
        byte[] byteArray = outputStream.toByteArray();
        return BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
    }
    
}
package com.transform.transformMine.baidu.ai.aip;
import android.annotation.SuppressLint;

import com.transform.transformMine.baidu.ai.aip.utils.Base64Util;
import com.transform.transformMine.baidu.ai.aip.utils.FileUtil;
import com.transform.transformMine.baidu.ai.aip.utils.HttpUtil;


import java.net.URLEncoder;


import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

public class formOcrRequest {
    private String fp = "/data/data/com.transform.transformMine/image/img_1.png";

    public String postInfo(String s) {
         fp = s;
       
        Callable<String> task = new Callable<String>() {
            @Override
            public String call() throws Exception {
              
                String url = "https://aip.baidubce.com";

                try {
                 
                    String filePath = fp;
                    byte[] imgData = FileUtil.readFileByBytes(filePath);
                    String imgStr = Base64Util.encode(imgData);
                    String imgParam = URLEncoder.encode(imgStr, "UTF-8");
                    String param = "image=" + imgParam;

                  
                    String accessToken = "24.e9018a2d.2592000.1688305552.282335-32556468";

                    String result = HttpUtil.post(url, accessToken, param);
                    return result;

                } catch (Exception e) {
                    e.printStackTrace();
                }
                return null;
            }
        };

        FutureTask<String> futureTask = new FutureTask<>(task);

        new Thread(futureTask).start();

        try {
            
            String result = futureTask.get();
            System.out.println("result: " + result);
            return result;

        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }
        return null;
    }
}

 

posted @ 2023-05-27 20:06  冰稀饭Aurora  阅读(11)  评论(0编辑  收藏  举报