`
abc20899
  • 浏览: 929079 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

获取本地图片或拍照图片

 
阅读更多
CharSequence[] items = {"相册", "相机"};    
   new AlertDialog.Builder(this)  
    .setTitle("选择图片来源")  
    .setItems(items, new OnClickListener() {  
        public void onClick(DialogInterface dialog, int which) {  
            if( which == SELECT_PICTURE ){  
                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);  
                intent.addCategory(Intent.CATEGORY_OPENABLE);  
                intent.setType("image/*");  
                startActivityForResult(Intent.createChooser(intent, "选择图片"), SELECT_PICTURE);   
            }else{  
                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);    
                startActivityForResult(intent, SELECT_CAMER);    
            }  
        }  
    })  
    .create().show();   


处理图片,方法一,直接处理返回图片:

注释:

1、网上有说明,直接处理返回的图片是被系统压缩过的,不过自己在测试的过程并没有区别;

2、如果用户不断的重新获取图片的话,必须把现在的Bmp内存释放,否则会报错! bmp.recycle()。

protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    super.onActivityResult(requestCode, resultCode, data);  
    if(resultCode == RESULT_OK){  
        //选择图片  
        Uri uri = data.getData();   
        ContentResolver cr = this.getContentResolver();   
        try {  
            if(bmp != null)//如果不释放的话,不断取图片,将会内存不够  
                bmp.recycle();  
            bmp = BitmapFactory.decodeStream(cr.openInputStream(uri));  
        } catch (FileNotFoundException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
        System.out.println("the bmp toString: " + bmp);  
        imageSV.setBmp(bmp);  
    }else{  
        Toast.makeText(SetImageActivity.this, "请重新选择图片", Toast.LENGTH_SHORT).show();  
    }  


处理图片,方法二,获得图片的地址再处理:


protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    super.onActivityResult(requestCode, resultCode, data);  
    if(resultCode == RESULT_OK){  
        Uri uri = data.getData();   
        String [] proj={MediaStore.Images.Media.DATA};  
        Cursor cursor = managedQuery( uri,  
                proj,                 // Which columns to return  
                null,       // WHERE clause; which rows to return (all rows)  
                null,       // WHERE clause selection arguments (none)  
                null);                 // Order-by clause (ascending by name)  
          
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);  
        cursor.moveToFirst();  
          
        String path = cursor.getString(column_index);  
        bmp = BitmapFactory.decodeFile(path);  
        System.out.println("the path is :" + path);  
    }else{  
        Toast.makeText(SetImageActivity.this, "请重新选择图片", Toast.LENGTH_SHORT).show();  
    }  
}  
          
}  
分享到:
评论

相关推荐

    获取本地图片与拍照图片的压缩

    在标题“获取本地图片与拍照图片的压缩”中,我们关注的核心是如何有效地管理和压缩图片,以防止内存溢出(Out Of Memory,简称OOM)问题,特别是在处理大尺寸图像时。描述中提到的“使用流获取文件进行压缩”,这是...

    拍照或本地获取图片

    在Android开发中,"拍照或本地获取图片"是常见的用户交互功能,允许用户通过相机拍摄新照片或从设备的媒体库选择现有图片。这个功能在许多应用中都非常实用,如社交应用、图像编辑应用或者任何需要用户上传图片的...

    android获取本地及拍照的图片

    在Android开发中,获取本地图片和拍照功能是常见的应用场景,比如在社交应用或者个人资料编辑界面。本篇文章将详细介绍如何实现在Android应用中获取本地图片并显示在`ImageButton`上,以及如何调用相机拍摄新照片并...

    从本地图库获取图片和拍照获取图片

    本文将详细讲解如何实现“从本地图库获取图片”和“拍照获取图片”的功能,并涵盖相关技术点。 首先,我们讨论如何从本地图库获取图片。在Android平台上,可以使用`Intent`的`ACTION_PICK`或`ACTION_GET_CONTENT`来...

    拍照获取本地图片裁剪圆形显示

    在Android开发中,实现“拍照获取本地图片裁剪圆形显示”的功能是一项常见的需求,尤其是在社交应用中,如QQ、微信等。这个功能涉及到多个技术点,包括相机权限管理、图片选择、图片裁剪以及自定义圆形ImageView。接...

    Android 拍照 获取本地图片

    在Android平台上,开发一款应用程序以实现“通过拍照获取图片并保存到本地,以及读取本地画廊的图片”是一项常见的需求。以下将详细介绍这个过程涉及的关键知识点。 首先,我们需要了解Android的权限管理。在...

    Android 相册获取图片或者相机拍照获取图片

    在Android应用开发中,获取用户设备上的图片或者通过相机拍摄新照片是常见的需求。随着Android系统的不断升级,尤其是从Android 4.4(KitKat)开始引入的存储权限管理变化,开发者需要采取不同的策略来适配不同的...

    Android-实现炫酷的获取本地图片和相机拍照图片-自定义组件

    总结,实现炫酷的获取本地图片和相机拍照图片的自定义组件涉及到了Android权限管理、Intent的使用、图片加载与展示技术以及自定义组件的开发。通过理解并熟练掌握这些知识点,开发者可以构建出更加用户友好的图片...

    android图像绘制(六)获取本地图片或拍照图片等图片资源

    本篇文章将探讨如何在Android设备上获取本地图片资源以及通过拍照获取图片,并对其进行处理。以下是对标题和描述中涉及的知识点的详细说明: 1. **获取本地图片资源**: Android提供多种方式从SD卡中获取图片。一...

    Android获取本地相册图片和拍照获取图片的实现方法

    Android获取本地相册图片和拍照获取图片的实现方法 Android获取本地相册图片和拍照获取图片是 Android 开发中常见的功能,本文将详细介绍实现该功能的方法。 获取本地相册图片 要获取本地相册图片,我们可以使用 ...

    android获取拍照图片、本地图片简单实现!

    在Android应用开发中,获取拍照图片和选择本地图片是常见的用户交互需求,这些功能可以用于创建个人资料、发表状态或者上传附件等。本教程将详细解释如何实现这两个功能。 首先,我们来了解一下如何调用系统相机...

    android 获取拍照或本地图片

    本教程将详细讲解如何实现这一过程,包括如何弹出对话框让用户选择操作方式,以及如何处理拍摄的照片或选取的本地图片。 首先,我们需要在布局文件中添加一个触发事件的控件,如Button,用于启动图片获取流程。当...

    选择本地或拍照图片

    在Android应用开发中,"选择本地或拍照图片"是一个常见的功能需求,允许用户从设备的图库中选择图片或者直接通过相机拍照获取图片。这个功能的实现涉及到多个关键知识点,包括权限管理、意图(Intent)的使用、图片...

    拍照或者本地选取图片

    在移动应用开发中,"拍照或者本地选取图片"是一个常见的功能需求,允许用户通过相机拍摄新照片或从设备的图库中选择已有图片。这个功能广泛应用于社交媒体、文档上传、在线购物等多种场景,极大地提升了用户体验。...

    Android 拍照上传和拍照本地显示,拍照剪切上传,选取本地图片剪切上传

    本示例主要讲解如何实现"Android拍照上传和拍照本地显示,拍照剪切上传,选取本地图片剪切上传"的功能,这对于社交、电商、生活类应用尤其关键。下面我们将深入探讨这个主题。 首先,我们来了解Android中的相机API...

    本地图片和拍照图片上传作为头像. 含代码

    综上所述,实现“本地图片和拍照图片上传作为头像”的功能,涉及到Android的基础组件使用、第三方库集成、权限管理、网络请求、图片处理等多个技术点,需要综合运用多种编程技巧。提供的`photo4.0.3`压缩包可能包含...

    WPF调用本地摄像头拍照并保存为图片

    在本文中,我们将深入探讨如何在Windows Presentation Foundation (WPF) 应用程序中调用本地摄像头进行拍照,并将拍摄的照片保存为.jpg格式的图片。这个过程涉及到几个关键的技术点,包括访问硬件设备、捕获视频流...

    可通过本地图片和拍照图片上传作为头像

    "可通过本地图片和拍照图片上传作为头像"这一特性,意味着该应用程序允许用户选择两种方式来个性化他们的个人资料:一是从设备本地选取已有的图片,二是直接通过摄像头拍摄新照片。这种功能为用户提供极大的便利性,...

    jandroid选择图片或拍照上传图片

    在Android应用开发中,"jandroid选择图片或拍照上传图片"是一个常见的功能需求,它涉及到用户界面交互、图像处理和网络通信等多个知识点。下面将详细解释这个过程中的关键技术和步骤。 1. **权限管理**:在Android ...

Global site tag (gtag.js) - Google Analytics