• 读取相册、拍照


    这两天在做项目时,做到上传图片功能一块时,碰到两个问题,一个是如何获取所选图片的路径,一个是如何压缩图片,在查了一些资料和看了别人写的后总算折腾出来了,在此记录一下。

    首先既然要选择图片,我们就先要获取本地所有的图片,Android已经为我们封装好了该意图。

    1
    2
    3
    4
    5
    1 Intent intent = new Intent(Intent.ACTION_PICK, null);//从列表中选择某项并返回所有数据
    2 intent.setDataAndType(
    3                    MediaStore.Images.Media.EXTERNAL_CONTENT_URI,//得到系统所有的图片
    4                    "image/*");//图片的类型,image/*为所有类型图片
    5 startActivityForResult(intent, PHOTO_GALLERY);

    然后我们重写onActivityResult方法。

    在Android1.5后系统会调用MediaScanner服务进行后台扫描,索引歌曲,图片,视频等信息,并将数据保存在android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails这两个数据库中。

    所以我们需要使用Activity.managedQuery(uri, projection, selection, selectionArgs, sortOrder)方法从数据中获取相应数据。

    uri:  需要返回的资源索引

    projection: 用于标识有哪些数据需要包含在返回数据中。

    selection: 作为查询符合条件的过滤参数,类似于SQL语句中Where之后的条件判断。

    selectionArgs: 同上。

    sortOrder: 对返回信息进行排序。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    1      @Override
     2      protected void onActivityResult(int requestCode, int resultCode, Intent data)
     3      {
     4          switch (requestCode)
     5          {
     6          //请求为获取本地图品时
     7          case PHOTO_GALLERY:
     8          {
     9                 //图片信息需包含在返回数据中
    10                 String[] proj ={MediaStore.Images.Media.DATA};
    11                 //获取包含所需数据的Cursor对象                 
    12                 @SuppressWarnings("deprecation")
    13                 Cursor cursor = managedQuery(data.getData(), proj, null, null, null);
    14                 //获取索引
    15                 int photocolumn =  cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    16                 //将光标一直开头
    17                 cursor.moveToFirst();
    18                 //根据索引值获取图片路径
    19                 String path = cursor.getString(photocolumn);
    20
    21
    22              break;
    23          }
    24         
    25          default:
    26              break;
    27          }
  • 相关阅读:
    20155231 邵煜楠《网络对抗技术》实验一 PC平台逆向破解
    2017-2018-1 20155231 《信息安全系统设计基础》课程总结
    2017-2018-1 20155231 《信息安全系统设计基础》第14周学习总结
    2017-2018-1 20155231 实验五 通讯协议设计
    2017-2018-1 20155231 《信息安全系统设计基础》第13周学习总结
    2017-2018-1 20155231 《信息安全系统设计基础》第11周学习总结
    2017-2018-1 20155231 实验四 外设驱动程序设计
    20155231 20155234 信息安全技术 实验四 木马及远程控制技术 实验报告
    2017-2018-1 20155231 课堂测试 (ch06)
    2017-2018-1 20155231 《信息安全系统设计基础》实现mypwd
  • 原文地址:https://www.cnblogs.com/allin1579/p/4940341.html
Copyright © 2020-2023  润新知