Android给相机指定照片路径以及缩放相片

 我们程序有时经常会调用手机里的相机照相,但是照相后的照片存在哪里呢?如果需要将照相存进数据库时该怎么办?
 这时,我们可以给相机设置一个相片输出路径,用来存放相机照相后的图片,当需要将相片存进数据库时,只需要将其路径存进数据库,取出时根据路径找到相片再还原出来就可以了。
 可以用如下代码给调用的相机指定输出路径:
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(路径名));
        startActivityForResult(intent,0);

这里的路径名就是你要存放相片的路径名,如:

Environment.getExternalStorageDirectory().getPath()+ File.pathSeparator +"myphoto";

为在SD卡根目录下创建一张myphoto的相片。

当然,如果不想将相片放在SD卡下,也可以放在程序中,获取程序路径有:
1、获取当前程序路径:

getApplicationContext().getFilesDir().getAbsolutePath();

2、获取该程序安装包路径:

getApplicationContext().getPackageResourcePath();

3、获取默认数据库路径:

getApplicationContext().getDatabasePath().getAbsolutePath();
当然,现在手机像素那么高,如果还原的时候直接还原相片的图片,有可能会造成内存不足,因此很多时候需要对相机的相片进行缩小。缩小相片基本可以按照以下代码进行:
public static Bitmap resizeBitmap(Bitmap bitmap,int width,int height){
    // 获得相片的原始大小
    int oriWidth = bitmap.getWidth();
    int oriHeight = bitmap.getHeight();

    // 获得相片的缩放比例
    float scaleWidth = (float)width/oriWidth;
    float scaleHeight = (float)height/oriHeight;

    Matrix matrix = new Matrix();
    matrix.postScale(scaleWidth,scaleHeight);
    Bitmap mBitmap = Bitmap.createBitmap(bitmap,0,0,
            width,height,matrix,true);
    // 记得将原来的bitmap对象回收
    bitmap.recycle();
    return mBitmap;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值