• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > android开发之——获取相册图片和路径,

android开发之——获取相册图片和路径,

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android开发相册,android开发,android开发环境搭建,android开发工具,android开发教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

android开发之——获取相册图片和路径,


Android开发获取相册图片的方式网上有很多种,这里说一个Android4.4后的方法,因为版本越高,一些老的api就会被弃用,新的api和老的api不兼容,导致出现很多问题。

比如:managedQuery()现在已经被getContentResolver().query()替代了,不过它们的参数都是一样的

再比如Android4.4后Intent(Intent.ACTION_GET_CONTENT);和Intent(Intent.ACTION_OPEN_DOCUMENT);两个方法所得到的图片的uri是不一样的,用老的方法导致在Android4.4系统获取不到图片。

    private ImageView imgShow = null;
    private TextView imgPath = null;
    private final int IMAGE_CODE = 0;
    Uri bitmapUri = null;
    private final String IMAGE_TYPE = "image/*";

imgShow是一个用来显示图片的imageView控件,imgPath是用来显示获取到图片的路径的TextView控件,都要在onCreate()函数里连接到对应的控件Id,IMAGE_CODE是自定义的一个参数,可以为其它数值。

private void selectImage() {
        // TODO Auto-generated method stub
        boolean isKitKatO = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
        Intent getAlbum;
        if (isKitKatO) {
            getAlbum = new Intent(Intent.ACTION_OPEN_DOCUMENT);
        } else {
            getAlbum = new Intent(Intent.ACTION_GET_CONTENT);
        }
        getAlbum.setType(IMAGE_TYPE);

        startActivityForResult(getAlbum, IMAGE_CODE);


    }

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        if (resultCode != RESULT_OK) {

            Log.e("TAG->onresult", "ActivityResult resultCode error");

            return;

        }
        Bitmap bm = null;
        ContentResolver resolver = getContentResolver();
        if (requestCode == IMAGE_CODE) {
            try {

                Uri originalUri = data.getData();        //获得图片的uri
                bitmapUri = originalUri;
                isSelectPic = true;
                bm = MediaStore.Images.Media.getBitmap(resolver, originalUri);
                //显得到bitmap图片
                imgShow.setImageBitmap(bm);
                String[] proj = {MediaStore.Images.Media.DATA};

                Cursor cursor = getContentResolver().query(originalUri, proj, null, null, null);
                if(cursor.moveToFirst()) {
                    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                    String path = cursor.getString(column_index);
                   imgPath.setText(path);
                }
                cursor.close();
            } catch (IOException e) {
                Log.e("TAG-->Error", e.toString());
            }

        }

    }

这里用

getContentResolver().query()替代老的managedQuery(),还在一开始判断编译的sdk版本是否为Android4.4以后的版本
boolean isKitKatO = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
是的话就用新的方法,否则用老的方法,在button控件里调用selectImage()函数就能从图片库获取图片。
要想通过uil得到相应的bitmap图片,可以通过以下方法:
private Bitmap decodeUriAsBitmap(Uri uri) {
        Bitmap bitmap = null;
        try {
            bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            return null;
        }
        return bitmap;
    }
传入获取到的图片的uri就能得到相应的bitmap图片

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • android开发之——获取相册图片和路径,

相关文章

  • 2017-05-26【1】Android 学习笔记 【第一个安卓程序】,android安卓
  • 2017-05-26Android实战简易教程-第六十六枪(服务器端搭建和服务器端Json数据交互)
  • 2017-05-26Android开发学习—— 创建项目时,不是继承activity,而是继承ActionBarActivity,androidactivity继承
  • 2017-05-26独立开发者的个人经验之谈,独立开发者的
  • 2017-05-26Android--BroadcastReceiver应用详解
  • 2017-05-26安卓四大组件之服务,安卓四大组件
  • 2017-05-26Android4.4访问外部存储,android4.4访问存储
  • 2017-05-26开启我的Android之旅-----记录Android环境搭建遇到的问题,-----android
  • 2017-05-26MySQL高可用组件MHA参数详解
  • 2017-05-26android动画详解一 概述

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 【Android性能工具】腾讯开源工具APT,androidapt
    • 微博API常用方法,博API常用方法
    • 文件缓存(配合JSON数组),缓存配合json数组
    • Android--Activity四种启动模式
    • nginx设置泛域名解析的https证书过程
    • Android 手机卫士1--实现splash页面,androidsplash
    • 安卓第十六天笔记-音频与视频播放,安卓第视频播放
    • Android Couldn't load BaiduMapSDK,androidbaidumapsdk
    • Java的进化? Kotlin初探与集成Android项目
    • 【Bugly 技术干货】Android开发必备知识:为什么说Kotlin值得一试,buglykotlin

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有