今天,上了几节课,然后进行项目的完善与基本实现
一:实现了调用相册,将地址提取
二:实现了图片提取加分类
三:实现了添加后更新
四:结果展示
五:项目问题以及可能出现bug
一:实现了调用相册,将地址提取
具体更改的这个方法:完整代码来自《第一行代码》调用相册和使用相机。更改后调用的相册可以将照片地址提出。
private String handleImageOnKitKat(Intent data) {
String imagePath = null;
Uri uri = data.getData();
if(DocumentsContract.isDocumentUri(this, uri)) {
//如果是document类型的uri,则通过document id处理
String docId = DocumentsContract.getDocumentId(uri);
if("com.android.providers.media.documents".equals(uri.getAuthority())) {
Toast.makeText(this, "success01", Toast.LENGTH_SHORT).show();
String id = docId.split(":")[1];
String secletion = MediaStore.Images.Media._ID + "=" + id;
imagePath = getImagePath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, secletion);
System.out.println("imagePath = " + imagePath);
} else if("com.android.providers.downloads.documents".equals(uri.getAuthority())) {
Toast.makeText(this, "success02", Toast.LENGTH_SHORT).show();
Uri contentUri = ContentUris.withAppendedId(Uri.parse("content://downloads/public_downloads"), Long.valueOf(docId));
imagePath = getImagePath(contentUri, null);
System.out.println("imagePath = " + imagePath);
}
} else if("content".equalsIgnoreCase(uri.getScheme())) {
Toast.makeText(this, "success03", Toast.LENGTH_SHORT).show();
//如果是content类型的Uri,则使用普通方式处理
imagePath = getImagePath(uri, null);
System.out.println("imagePath = " + imagePath);
} else if("file".equalsIgnoreCase(uri.getScheme())) {
//如果是file类型的uri,则直接获取文件路径
Toast.makeText(this, "success04", Toast.LENGTH_SHORT).show();
imagePath = uri.getPath();
}
displayImage(imagePath);
return imagePath;
}
二:实现了图片提取加分类
Main main = new Main();
String response = main.qiuqiu(String.valueOf(imagePath));
System.out.println("response = " + response);
System.out.println("response = " + response.replaceAll(" ","").trim());
Chatgpt chatgpt = new Chatgpt();
String message = "”" + response + "”,请严格按照以下格式回答:支付时间为“XXXX年XX月XX日”。消费类型为“?”。“餐饮美食”、“生活日用”、“交通出行”、“休闲娱乐”、“医疗保健”、“投资理财”、“其他消费”、在给出的这些选出消费类型,消费金额为“?”,消费内容为“?”。";
String information = chatgpt.response(message);
//String message = "”" + information + "”,请严格按照以下格式回答:支付时间为“XXXX年XX月XX日”。消费类型为“?”。“餐饮美食”、“生活日用”、“交通出行”、“休闲娱乐”、“医疗保健”、“投资理财”、“其他消费”、在给出的这些选出消费类型,消费金额为“?”,消费内容为“?”。";
System.out.println("information = " + information);
PaymentInfoExtractor paymentInfoExtractor = new PaymentInfoExtractor();
String time_show = paymentInfoExtractor.dealtime(information);
String type_show =paymentInfoExtractor.dealtype(information);
String money_show =paymentInfoExtractor.dealmoney(information);
String resourse_show =paymentInfoExtractor.deal(information);
System.out.println("time = " + time_show);
System.out.println("type = " + type_show);
System.out.println("money = " + money_show);
System.out.println("resourse = " + resourse_show);
time.setText(time_show);
money.setText(money_show);
sourse.setText(resourse_show);
int position = 0;
if(type_show.equals("生活日用")) {
position = 1;
}
调用我写的类
三:实现了添加后更新
Button CameraButton = (Button) getActivity().findViewById(R.id.Camera_Button);
CameraButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(), CameraAndAlbum.class);
Bundle bundle = new Bundle();
bundle.putInt("User_id",User_id);
intent.putExtras(bundle);
startActivityForResult(intent,2);
}
});
采用activity的返回结果
四:结果展示
五:项目问题以及可能出现bug
项目最大的问题就是chatgpt的不确定性,每个时刻给出的回答都不一样,需要对其进行更改维护。
然后,有时候会出现这个界面,是最差的结果。
然后,随机性比较强,因为以前很多次都是一个回答。
标签:24,imagePath,String,show,uri,System,2023,println,随笔 From: https://www.cnblogs.com/JIANGzihao0222/p/17429857.html