相机
package com.example.xiangji;
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.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView imageView;
private Button button1,button2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.imageView1);
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//隐式回传意图
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//添加意图
intent.addCategory("android.intent.category.DEFAULT");
//回传
startActivityForResult(intent, 0);
}
});
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,Second_Activity.class);
startActivity(intent);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode==0) {
Bitmap bitmap = data.getParcelableExtra("data");
imageView.setImageBitmap(bitmap);
}
}
}
相册
package com.example.xiangji;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcelable;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class Second_Activity extends Activity {
private Button button1,button2;
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second_);
imageView = (ImageView) findViewById(R.id.imageView12);
button1 = (Button) findViewById(R.id.button12);
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//设置相册意图
Intent intent = new Intent(Intent.ACTION_PICK);
//设置MIME数据类型
intent.setType("image/*");
//跳转回传
startActivityForResult(intent, 1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode==1) {
//得到图片路径
Uri uri = data.getData();
imageView.setImageURI(uri);
}
}
}
剪切
package com.example.xiangji;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcelable;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class Second_Activity extends Activity {
private Button button1,button2;
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second_);
imageView = (ImageView) findViewById(R.id.imageView12);
button1 = (Button) findViewById(R.id.button12);
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//设置相册意图
Intent intent = new Intent(Intent.ACTION_PICK);
//设置MIME数据类型
intent.setType("image/*");
//跳转回传
startActivityForResult(intent, 1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode==1) {
//得到图片路径
Uri uri = data.getData();
Intent crop = crop(uri);
startActivityForResult(crop, 2);
}else {
Bitmap bitmap = data.getParcelableExtra("data");
imageView.setImageBitmap(bitmap);
}
}
private Intent crop(Uri uri) {
/*
* 1.图片 uri
* 2.裁剪框
* 3.裁剪后的图片
*/
// 裁剪图片意图
Intent intent = new Intent("com.android.camera.action.CROP");
// 设置裁剪的数据源和数据类型
intent.setDataAndType(uri, "image/*");
// 可裁剪
intent.putExtra("crop", true);
// 裁剪框的比例,1:1
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
// 裁剪后输出图片的尺寸大小(图片展示到imageView的大小,不要太大了,不然会出错)
// 参数(1.输出的大小,大小)
intent.putExtra("outputX", 250);
intent.putExtra("outputY", 250);
// 图片格式(参数:输出格式,格式)
intent.putExtra("outputFormat", "JPEG");
// 必须加,否则返回值中找不到返回的值
intent.putExtra("return-data", true);
// 若为true则表示返回数据(图片)
return intent;
}
}