LoadImageManager(选择图片,打开照相机)

本文详细介绍了在Android应用中如何通过选择现有图片和拍摄照片来加载图像文件,并提供了将URI转换为URL的方法,以便在应用中使用这些图片。
package com.k1.doctor.media;

import java.io.File;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Environment;
import android.provider.MediaStore;

public class LoadImageManager {
    public static final int CHOOSE_IMAGE = 2;
    public static final int IMAGE_CAPTURE = 3;

    public static void openImageFile(Activity context) {
        Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");

        context.startActivityForResult(intent, CHOOSE_IMAGE);
    }

    public static void openTakePhoto(Activity content) {

        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT,
                Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "temp.jpg")));
        content.startActivityForResult(intent, IMAGE_CAPTURE);

    }

    public static String uriToUrl(Context context, Uri uri) {
        String[] proj = { MediaStore.Images.Media.DATA };

        Cursor actualimagecursor = ((Activity) context).managedQuery(uri, proj, null, null, null);

        int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

        actualimagecursor.moveToFirst();

        String img_path = actualimagecursor.getString(actual_image_column_index);

        File file = new File(img_path);
        return file.getPath();

    }

    public interface CallMethod {
        void back(Object o);
    }

}
public String getPath() {
        File sdDir = null;
        boolean sdCardExist = Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED); // 判断sd卡是否存在
        if (sdCardExist) {
            sdDir = Environment.getExternalStorageDirectory();// 获取跟目录
            sdDir = new File(sdDir, "voice");
        } else {
            sdDir = new File(Environment.getDataDirectory(), UUID.randomUUID().toString() + ".jpg");
        }
        return sdDir.
();

    }
 
public void onActivityResult(int requestCode, int resultCode, Intent data) {
        String urls = null;
        if (requestCode == LoadImageManager.CHOOSE_IMAGE) {
            String state = "";
            Uri uri = data.getData();
            String url = LoadImageManager.uriToUrl(getContext(), uri);
            String s = uri.getPath();
            System.out.println(url);

            if (s != null) {
                state = "ok";
            } else {
                state = "fail";
            }
            urls = getJson(url, state);
            /* 将Bitmap设定到ImageView */
            // Bitmap bitmap = BitmapFactory.decodeFile(url);
            // mFramePick.setVisibility(View.VISIBLE);
            // Drawable d=Drawable.createFromPath(url);
            // mFramePick.setBackground(d);
            System.out.println();
        } else if (requestCode == LoadImageManager.IMAGE_CAPTURE) {
            File picture = new File(getCurrentFilePath());
            Bitmap decodeStream;
            String state = "";

            // mFramePick.setVisibility(View.VISIBLE);
            // Drawable d=Drawable.createFromPath(picture.getPath());
            // mFramePick.setBackground(d);
            // 得到图片
            try {
                decodeStream = BitmapFactory.decodeStream(new FileInputStream(picture));
                // Drawable d = new BitmapDrawable(decodeStream);
                // navigationLinear.setBackground(d);
                state = "ok";
            } catch (FileNotFoundException e) {
                state = "fail";
                e.printStackTrace();
            } finally {

                urls = getJson(picture.getPath(), state);
            }
        }

    

    }

 

 
public String getCurrentFilePath() {
        // TODO Auto-generated method stub
        return mCurrentFilePathString;
    }

 



 

转载于:https://www.cnblogs.com/g-sheng/p/5412186.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值