UI高级_相机相册

相机

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;
	}
	
}

猜你喜欢

转载自blog.csdn.net/u013628092/article/details/84798333