android调用系统(相机)的图片,并且返回
2012-08-23 10:24
363 查看
话不多说。。。直接上源代码
package com.ljz.test.main;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.Menu;
public class MainActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
//这个参数是确定要选择的内容为图片
intent.setType("image/*");
//这个参数 不太懂,唯一知道的是:设置了参数,就会调用裁剪,如果不设置,就会跳过裁剪的过程。
intent.putExtra("crop", "true");
//这个是裁剪时候的 裁剪框的 X 方向的比例。
intent.putExtra("aspectX", 1);
//同上Y 方向的比例. (注意: aspectX, aspectY ,两个值都需要为 整数,如果有一个为浮点数,就会导致比例失效。)
intent.putExtra("aspectY", 1);
//返回数据的时候的 X 像素大小。
intent.putExtra("outputX", 80);
//返回的时候 Y 的像素大小。
intent.putExtra("outputY", 80);
//是否要返回值。 一般都要。
intent.putExtra("return-data", true);
startActivityForResult(intent, 0);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
System.out.println(resultCode);
Bitmap cameraBitmap = (Bitmap) data.getExtras().get("data");
if( cameraBitmap == null )
{
System.out.println("null");
}
else
{
System.out.println("not null");
}
super.onActivityResult(requestCode, resultCode, data);
}
}
关于源代码的细化说明:
网上有不少文章说怎么调用图库去选择并裁剪图片,却对这些参数说的比较少。 今天把看懂的一些参数总结一下:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType("image/*"); //这个参数是确定要选择的内容为图片
intent.putExtra("crop", "circle"); //这个参数 不太懂,唯一知道的是:设置了参数,就会调用裁剪,如果不设置,就会跳过裁剪的过程。
intent.putExtra("aspectX", 33); //这个是裁剪时候的 裁剪框的 X 方向的比例。
intent.putExtra("aspectY",43); //同上Y 方向的比例. (注意: aspectX, aspectY ,两个值都需要为 整数,如果有一个为浮点数,就会导致比例失效。)
//设置aspectX 与 aspectY 后,裁剪框会按照所指定的比例出现,放大缩小都不会更改。如果不指定,那么 裁剪框就可以随意调整了。
intent.putExtra("outputX", 50); //返回数据的时候的 X 像素大小。
intent.putExtra("outputY", 100); //返回的时候 Y 的像素大小。
//以上两个值,设置之后会按照两个值生成一个Bitmap, 两个值就是这个bitmap的横向和纵向的像素值,如果裁剪的图像和这个像素值不符合,那么空白部分以黑色填充。
intent.putExtra("noFaceDetection", true); // 是否去除面部检测, 如果你需要特定的比例去裁剪图片,那么这个一定要去掉,因为它会破坏掉特定的比例。
intent.putExtra("return-data", true); //是否要返回值。 一般都要。
startActivityForResult(intent, 1);
package com.ljz.test.main;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.Menu;
public class MainActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
//这个参数是确定要选择的内容为图片
intent.setType("image/*");
//这个参数 不太懂,唯一知道的是:设置了参数,就会调用裁剪,如果不设置,就会跳过裁剪的过程。
intent.putExtra("crop", "true");
//这个是裁剪时候的 裁剪框的 X 方向的比例。
intent.putExtra("aspectX", 1);
//同上Y 方向的比例. (注意: aspectX, aspectY ,两个值都需要为 整数,如果有一个为浮点数,就会导致比例失效。)
intent.putExtra("aspectY", 1);
//返回数据的时候的 X 像素大小。
intent.putExtra("outputX", 80);
//返回的时候 Y 的像素大小。
intent.putExtra("outputY", 80);
//是否要返回值。 一般都要。
intent.putExtra("return-data", true);
startActivityForResult(intent, 0);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
System.out.println(resultCode);
Bitmap cameraBitmap = (Bitmap) data.getExtras().get("data");
if( cameraBitmap == null )
{
System.out.println("null");
}
else
{
System.out.println("not null");
}
super.onActivityResult(requestCode, resultCode, data);
}
}
关于源代码的细化说明:
网上有不少文章说怎么调用图库去选择并裁剪图片,却对这些参数说的比较少。 今天把看懂的一些参数总结一下:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType("image/*"); //这个参数是确定要选择的内容为图片
intent.putExtra("crop", "circle"); //这个参数 不太懂,唯一知道的是:设置了参数,就会调用裁剪,如果不设置,就会跳过裁剪的过程。
intent.putExtra("aspectX", 33); //这个是裁剪时候的 裁剪框的 X 方向的比例。
intent.putExtra("aspectY",43); //同上Y 方向的比例. (注意: aspectX, aspectY ,两个值都需要为 整数,如果有一个为浮点数,就会导致比例失效。)
//设置aspectX 与 aspectY 后,裁剪框会按照所指定的比例出现,放大缩小都不会更改。如果不指定,那么 裁剪框就可以随意调整了。
intent.putExtra("outputX", 50); //返回数据的时候的 X 像素大小。
intent.putExtra("outputY", 100); //返回的时候 Y 的像素大小。
//以上两个值,设置之后会按照两个值生成一个Bitmap, 两个值就是这个bitmap的横向和纵向的像素值,如果裁剪的图像和这个像素值不符合,那么空白部分以黑色填充。
intent.putExtra("noFaceDetection", true); // 是否去除面部检测, 如果你需要特定的比例去裁剪图片,那么这个一定要去掉,因为它会破坏掉特定的比例。
intent.putExtra("return-data", true); //是否要返回值。 一般都要。
startActivityForResult(intent, 1);
相关文章推荐
- android 调用系统相册选取照片或者打开相机拍照获取图片,返回时回到手机桌面,然后才会跳转到当前activity
- Android调用相机拍照并返回路径和调用系统图库选择图片
- android 调用系统相册选取照片或者打开相机拍照获取图片,返回时为什么会回到home界面或者到前一个界面,然后才会跳转到当前activity
- Android调用相机拍照并返回路径和调用系统图库选择图片
- Android调用相机拍照并返回路径和调用系统图库选择图片
- 打开android 系统的相机,拍照并且图片返回
- android调用系统相机的方法,并且解决三星手机遇到的问题,图片旋转、压缩
- android 调用系统相册选取照片或者打开相机拍照获取图片,返回时回到手机桌面,然后才会跳转到当前activity
- Android调用系统相册和相机选择图片显示在界面
- Android调用系统相机onActivityResult返回参数data为null
- Android 调用系统相机,拍照并返回显示
- Android调用相机程序和图片处理程序获得原图并且进行图片处理
- Android调用系统相册和相机选择图片并显示在imageview中
- Android 调用系统相机拍照(适配7.0)、从图库选择图片、从数据库读取联系人信息、相册图片、扫描文件
- android 调用系统相机,预置路径,解决小米等机型uri返回为null的问题
- android调用系统播放器后返回的图片旋转了
- android 调用系统相机,预置路径,解决小米等机型uri返回为null的问题
- Android 调用系统相机、图库 ,取图片并裁剪、保存sd卡
- 关于android中调用系统拍照,返回图片是旋转90度..
- [Android Pro] 调用系统相机和图库,裁剪图片