100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > android调用照相机拍照获取照片并…

android调用照相机拍照获取照片并…

时间:2022-01-19 07:42:39

相关推荐

android调用照相机拍照获取照片并…

1.调用系统的照相机程序

Intent intent = newIntent(MediaStore.ACTION_IMAGE_CAPTURE);

startActivityForResult(intent,TAKE_PHOTO_WITH_DATA);

2.在onActivityResult中处理返回的data

final Bitmap photo = data.getParcelableExtra("data");

如果不需要做剪切处理就可以直接使用图片了,比如输出到ImageView上

imageView.setImageBitmap(photo);

如果需要做剪切处理,就继续向下执行

3.做剪切处理

Intent intent = newIntent("com.android.camera.action.CROP");

intent.setType("image

private Button btnTake = null;

private ImageView lblImage = null;

private static final int PHOTO_PICKED_WITH_DATA = 3021;

private static final int CAMERA_WITH_DATA = 3023;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

btnTake = (Button)findViewById(R.id.btnTake);

lblImage = (ImageView)findViewById(R.id.lblImage);

btnTake.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent intent = newIntent(MediaStore.ACTION_IMAGE_CAPTURE);

startActivityForResult(intent, CAMERA_WITH_DATA);

}

});

}

@Override

protected void onActivityResult(int requestCode, int resultCode,Intent data) {

// TODO Auto-generated method stub

if(resultCode!=RESULT_OK)

return;

switch(requestCode){

case CAMERA_WITH_DATA:

final Bitmap photo = data.getParcelableExtra("data");

if(photo!=null){

doCropPhoto(photo);

}

case PHOTO_PICKED_WITH_DATA:

Bitmap photo1 = data.getParcelableExtra("data");

if(photo1!=null){

lblImage.setImageBitmap(photo1);

}

}

}

protected void doCropPhoto(Bitmap data){

Intent intent = getCropImageIntent(data);

startActivityForResult(intent, PHOTO_PICKED_WITH_DATA);

}

public static Intent getCropImageIntent(Bitmap data) {

Intent intent = newIntent("com.android.camera.action.CROP");

intent.setType("image/*");

intent.putExtra("data", data);

intent.putExtra("crop", "true");

intent.putExtra("aspectX", 1);

intent.putExtra("aspectY", 1);

intent.putExtra("outputX", 128);

intent.putExtra("outputY", 128);

intent.putExtra("return-data", true);

return intent;

}

}

完整代码:

package com.chc.android;

import android.app.Activity;

import android.content.Intent;

import android.graphics.Bitmap;

import android.os.Bundle;

import android.provider.MediaStore;

import android.view.View;

import android.widget.Button;

import android.widget.ImageView;

public class tapgetcut extends Activity {

private Button btnTake = null;

private ImageView lblImage = null;

private static final int PHOTO_PICKED_WITH_DATA = 3021;

private static final int CAMERA_WITH_DATA = 3023;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

btnTake = (Button)findViewById(R.id.btn01);

lblImage = (ImageView)findViewById(R.id.iv01);

btnTake.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

startActivityForResult(intent, CAMERA_WITH_DATA);

}

});

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

// TODO Auto-generated method stub

if(resultCode!=RESULT_OK)

return;

switch(requestCode){

case CAMERA_WITH_DATA:

final Bitmap photo = data.getParcelableExtra("data");

if(photo!=null){

doCropPhoto(photo);

}

case PHOTO_PICKED_WITH_DATA:

Bitmap photo1 = data.getParcelableExtra("data");

if(photo1!=null){

lblImage.setImageBitmap(photo1);

}

}

}

protected void doCropPhoto(Bitmap data){

Intent intent = getCropImageIntent(data);

startActivityForResult(intent, PHOTO_PICKED_WITH_DATA);

}

public static Intent getCropImageIntent(Bitmap data) {

Intent intent = new Intent("com.android.camera.action.CROP");

intent.setType("image/*");

intent.putExtra("data", data);

intent.putExtra("crop", "true");

intent.putExtra("aspectX", 1);

intent.putExtra("aspectY", 1);

intent.putExtra("outputX", 128);

intent.putExtra("outputY", 128);

intent.putExtra("return-data", true);

return intent;

}

}

xml:

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:id ="@+id/test01"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

自 /s/blog_7501670601013l3o.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。