最近在做一个图片上传的功能,需要提供上传图片在SD卡中的路径,在网上看了些例子,改改调试成功,代码很简单。其布局文件如下: [html] view plain copy print ?
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical">
  6. <Button
  7. android:id="@+id/select"
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:text="请选择SD卡中的图片"
  11. />
  12. </LinearLayout>

JAVA文件如下:

[java] view plain copy print ?
  1. packagecom.lostinai;
  2. importjava.io.IOException;
  3. importandroid.app.Activity;
  4. importandroid.content.ContentResolver;
  5. importandroid.content.Intent;
  6. importandroid.database.Cursor;
  7. importandroid.graphics.Bitmap;
  8. importandroid.net.Uri;
  9. importandroid.os.Bundle;
  10. importandroid.provider.MediaStore;
  11. importandroid.util.Log;
  12. importandroid.view.View;
  13. importandroid.widget.Button;
  14. publicclassQueryPictureUrlActivityextendsActivity{
  15. privateButtonselect;
  16. privatefinalStringIMAGE_TYPE="image/*";
  17. privatefinalintIMAGE_CODE=0;
  18. publicvoidonCreate(BundlesavedInstanceState){
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.main);
  21. select=(Button)findViewById(R.id.select);
  22. select.setOnClickListener(newView.OnClickListener(){
  23. publicvoidonClick(Viewv){
  24. IntentgetAlbum=newIntent(Intent.ACTION_GET_CONTENT);
  25. getAlbum.setType(IMAGE_TYPE);
  26. startActivityForResult(getAlbum,IMAGE_CODE);
  27. }
  28. });
  29. }
  30. protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){
  31. if(resultCode!=RESULT_OK){//此处的RESULT_OK是系统自定义得一个常量
  32. //Log.e(TAG,"ActivityResultresultCodeerror");
  33. return;
  34. }
  35. Bitmapbm=null;
  36. ContentResolverresolver=getContentResolver();
  37. if(requestCode==IMAGE_CODE){
  38. try{
  39. UrioriginalUri=data.getData();//获得图片的uri
  40. bm=MediaStore.Images.Media.getBitmap(resolver,originalUri);//显得到bitmap图片
  41. //这里开始的第二部分,获取图片的路径:
  42. String[]proj={MediaStore.Images.Media.DATA};
  43. Cursorcursor=managedQuery(originalUri,proj,null,null,null);
  44. //按我个人理解这个是获得用户选择的图片的索引值
  45. intcolumn_index=cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
  46. cursor.moveToFirst();
  47. //最后根据索引值获取图片路径
  48. Stringpath=cursor.getString(column_index);
  49. Log.e("Lostinai",path);
  50. }catch(IOExceptione){
  51. Log.e("Lostinai",e.toString());
  52. }
  53. }
  54. }
  55. }
最后别忘记了加上权限啊

[html] view plain copy print ?
  1. <uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/>
  2. <uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
  3. <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

更多相关文章

  1. Pycharm安装PyQt5的详细教程
  2. Android(安卓)matrix 控制图片的旋转、缩放、移动
  3. android拍照与读取相册
  4. Android(安卓)报错:Caused by: android.os.FileUriExposedExcepti
  5. Android--SoLoader,android动态加载so库
  6. Android(安卓)命令行编译、打包生成apk文件
  7. android解决坚屏拍照和保存图片旋转90度的问题,并兼容4.0
  8. [Android]在App中使用相机
  9. android WebView 图片缩放功能小结

随机推荐

  1. Android(安卓)4.0 Launcher2源码分析——
  2. 如何把个人业余开源项目做到月入8万美元?
  3. Android并发编程线程间通信的三种基本方
  4. Android Shell 常用命令
  5. android开发之Google工程师多图详解Andro
  6. android view滑动助手类 OverScroller Ve
  7. Android UI开发第二十八篇――Fragment中
  8. Kotlin编程之Kotlin Android Extensions(
  9. Android游戏开发源码案例25个汇总
  10. Android(安卓)studio 1.3 NDK开发