Android拍照与相册选取图片

做过几次拍照,相册选取图片,但都记不住,这次发表个简单的保存下

private static final int PHOTO_GRAPH = 1;// 拍照
    private static final int PHOTO_ALBUM = 2; // 相册获取
    private static final String IMAGE_TYPE = "image/*";

 1 public void takePhoto(){
 2   
 3  String SDState = Environment.getExternalStorageState();
 4   if(SDState.equals(Environment.MEDIA_MOUNTED))
 5             {
 6                 imgfileName = System.currentTimeMillis() + ".jpg";
 7                 Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
 8                 intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(
 9                         Environment.getExternalStorageDirectory(), imgfileName)));
10                 intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);
11                 startActivityForResult(intent, PHOTO_GRAPH);
12                 dialog.dismiss();
13             }else{
14                 Toast.makeText(getThis(),"内存卡不存在", Toast.LENGTH_SHORT).show();
15             }
16  }

拍照

//回调函数
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);if(resultCode == RESULT_OK){
            switch (requestCode) {
            case NONE:

                break;
            case PHOTO_GRAPH://拍照
                String myJpgPath = Environment.getExternalStorageDirectory()+"/"+imgfileName;
                if(ImageThumbnail.isFileExit(myJpgPath) == true){
                    img_SFZ.setImageBitmap(ImageThumbnail.getImageThumbnail(myJpgPath, img_SFZ.getWidth(), img_SFZ.getHeight()));
                }
                break;
            case PHOTO_ALBUM://相册获取
                //照片的原始资源地址
                Uri originalUri = data.getData();
                try {
                    //获取图片的路径:
                    String[] proj = {MediaStore.Images.Media.DATA};
                    cursor = managedQuery(originalUri, proj, null, null, null);
                    //按我个人理解 这个是获得用户选择的图片的索引值
                    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                    cursor.moveToFirst();
                    //最后根据索引值获取图片路径
                    String imgPath = cursor.getString(column_index);
                    if (ImageThumbnail.isFileExit(imgPath) == true) {
                        img_SFZ.setImageBitmap(ImageThumbnail.getImageThumbnail(imgPath, img_SFZ.getWidth(), img_SFZ.getHeight()));
                    }
                } catch (Exception e) {
                    // TODO: handle exception
                }

                break;
            default:
                break;
            }
        }

/**
     * 图片压缩显示
     * @param imagePath
     * @param width
     * @param height
     * @return
     */
    public static Bitmap getImageThumbnail(String imagePath, int width,
            int height) {
        Bitmap bitmap = null;
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        // 获取这个图片的宽和高,注意此处的bitmap为null
        bitmap = BitmapFactory.decodeFile(imagePath, options);
        options.inJustDecodeBounds = false; // 设为 false
        // 计算缩放比
        int h = options.outHeight;
        int w = options.outWidth;
        int beWidth = w / width;
        int beHeight = h / height;
        int be = 1;
        if (beWidth < beHeight) {
            be = beWidth;
        } else {
            be = beHeight;
        }
        if (be <= 0) {
            be = 1;
        }
        options.inSampleSize = be;
        // 重新读入图片,读取缩放后的bitmap,注意这次要把options.inJustDecodeBounds 设为 false
        bitmap = BitmapFactory.decodeFile(imagePath, options);
        // 利用ThumbnailUtils来创建缩略图,这里要指定要缩放哪个Bitmap对象
        bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,
                ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
        return bitmap;
    }

图片压缩显示

时间: 2024-09-30 14:09:48

Android拍照与相册选取图片的相关文章

Android拍照、相册选取、裁剪图片

来自:http://blog.csdn.net/ryantang03/article/details/8656278 package com.example.listactivity; import java.io.ByteArrayOutputStream; import java.io.File; import com.example.model.ImageTools; import android.app.Activity; import android.app.AlertDialog;

android——拍照,相册图片剪切其实就这么简单

接触android这么久了.还没有真正的浩浩看看android拍照,相册图片剪切到底是怎么回事,每次都是从别人的代码一扣,就过来了.其实,谷歌提供的API已经很强大.只需要用的好,就那么几句就可以搞定神秘的拍照和剪切图片.废话不多少,直接看源码 package com.example.testcamera; import java.io.FileNotFoundException; import android.app.Activity; import android.content.Inten

Android拍照,相册选择图片以及Android6.0权限管理

概述 在android开发过程中,拍照或者从相册中选择图片是很常见的功能.下面要说得这个案例比较简单,用户点击按钮选择拍照或者打开相册选择图片,然后将选中的图片显示在手机上.android6.0后,推出了动态权限管理.以往我们将涉及到的权限全部写在清单文件中,只要用户安装了该程序,程序在运行过程中都会获得相应权限.android6.0后,对于一些特别敏感的权限,开发者必须在程序中进行声明.拍照和从相册选择图片都是涉及到用户隐私的敏感权限,必须在程序中进行声明. 大概的流程 创建布局文件,这里不多

android拍照或相册获取头像(兼容4.4以下,4.4,5.0,6.0版本)

首先为权限: <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="com.android.vending.BILLING" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&g

Android拍照、相册 获取图片后,裁剪图片

最近在做的B2B的项目,图片大部分来源于用户自己上传: 由于android尺寸的不一,用户相机,相册的图片也是奇形怪状: 所以在上传之前对图片做一次裁剪是很有必要的! 下面是按比例裁剪图片的demo 资源文件activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/

android打开相册选取图片或打开相机拍照并进行裁剪

首先是打开本地相册选取图片: Intent albumIntent = new Intent(Intent.ACTION_PICK);//打开系统的相册 albumIntent.setType("image/*"); startActivityForResult(albumIntent, 0x1004); 选取完图片后在onActivityResult编写取数据的操作: @Override protected void onActivityResult(int requestCode,

Android设置头像,手机拍照或从本地相册选取图片作为头像

 [Android设置头像,手机拍照或从本地相册选取图片作为头像] 像微信.QQ.微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式: 1,让用户通过选择本地相册之类的图片库中已有的图像,裁剪后作为头像. 2,让用户启动手机的相机拍照,拍完照片后裁剪,然后作为头像. 我现在写一个简单的完整代码例子,说明如何在Android中实现上述两个头像设置功能. MainActivity.java文件: package zhangpgil.photo; import java.io.F

【Android笔记】Androd手机拍照或从相册选取图片作为头像

1 package zhangpgil.photo; 2 3 import java.io.File; 4 import android.support.v7.app.ActionBarActivity; 5 import android.view.View; 6 import android.widget.Button; 7 import android.widget.ImageView; 8 import android.widget.Toast; 9 import android.cont

Android 拍照或者从相册获取图片的实现

我们常常会用到上传头像,或者发帖子的时候选择本地图片上传的功能.这个很常见 今天因为app的需求我研究了下.现在分享下. 其实不论是通过拍照还是从相册选取都会用到Intent 这是系统提供给我们用来调用系统方法的好用工具! 首先,需要设计下我们想怎么调用系统的拍照或者选取图片的方法 我们可以点击头像或者一个按钮然后弹出一个对话框,让用户自己 选择是拍照还是选择图片(如下图) . 那这个对话框怎么写呢.通过AlertDialog来实现(我们就给这个方法起名叫dialog): //对头像操作 pri