问题描述
- Android中如何读入文件夹中的图片文件并得到该图片的名称
-
补充内容,我按照下面的方式读取了一张图片,能不能得到这个图片的名字?比如图片的名字为“XD0001.jpg”,如何得到“XD0001"这个字符串?我现在有一个程序,是从相册选择一张图片后裁剪,保存然后才能进入后面的处理,我现在想把裁剪功能去掉,并想实现读取文件夹中的所有图片,并能一张张的进行处理,我该怎么改?
现在的代码是:
这个是onActivityResult需要改的部分代码protected void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); switch(requestCode) { case PHOTO_GET_PHOTO_DATA : try { System.out.println("从相册获得图片"); ContentResolver localContentResolver = getContentResolver(); Uri originalUri = intent.getData(); this.mContent = readStream(localContentResolver.openInputStream(Uri.parse(originalUri.toString()))); if (getPicFromBytes(this.mContent, null) == null) break; System.out.println("开始裁剪2"); startPhotoZoom(originalUri);//开始图片剪裁 System.out.println("裁剪结束2"); //获取文件的绝对路径 String originalUri1 = originalUri.getSchemeSpecificPart().substring(2); System.out.println("originalUri1="+originalUri1); if(originalUri1 != null) { this.myApp.setState(originalUri1); } else { String[] proj = {MediaStore.Images.Media.DATA}; @SuppressWarnings("deprecation") Cursor cursor = this.managedQuery(originalUri, proj, null, null, null); if(cursor==null) return; int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); this.myApp.setState(cursor.getString(column_index)); } //System.out.println("fileName:" + this.fileName); } catch (Exception localException) { System.out.println("E:" + localException.getMessage()); } break; case PHOTO_PICKED_WITH_DATA : if(intent==null) break; Bundle extras = intent.getExtras(); if(extras==null) break; this.photo = extras.getParcelable("data"); if(photo==null) break; this.showImage.setImageBitmap(this.photo); this.showImage.setVisibility(0); this.phFlag = true; this.result.setText(""); this.resultStr = "";
下面是裁剪函数;
public void startPhotoZoom(Uri paramUri) { Intent localIntent = new Intent("com.android.camera.action.CROP"); localIntent.setDataAndType(paramUri, "image/*"); localIntent.putExtra("crop", "true"); localIntent.putExtra("aspectX", 4); localIntent.putExtra("aspectY", 3); localIntent.putExtra("outputX", WIDTH); localIntent.putExtra("outputY", HEIGHT); localIntent.putExtra("return-data", true); startActivityForResult(localIntent, PHOTO_PICKED_WITH_DATA); }
我的主要问题是去掉裁剪函数,最后有个startActivityForResult中intent的传递用什么代替,还有就是怎么读取文件夹里所有的图片,然后可以一张一张的处理。
解决方案
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, RESULT);
http://blog.csdn.net/jackyguo1992/article/details/26729107
解决方案二:
楼主是想读一个文件夹里的全部 图片的文件名?
那可以在代码里用 adb ls 命令啊,然后把输出的 全部检查后缀是 .jpg 或.png 或.git 之类的,是就加到你的字符串数组里
要处理,就跟进 你的文件夹路径 + 图片名 一张张获取,再处理
这样可以吗
时间: 2024-10-30 23:22:55