首先要设置相机权限:
uses-permission android:name=“android.permission.CAMERA”
话不多说了,来看一下代码:
先来看一下mainactivity.xml里面的代码:
因为这里需要用到Popupwindow弹框,所以需要新建一个butt.xml布局:
最后再来看一下mainactivity里面的代码:
public class MainActivity extends Activity implements View.OnClickListener {
private ImageView img;
private View myinter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
public void init(){
//找控件
img =(ImageView) findViewById(R.id.img);
//加载试图
myinter = View.inflate(MainActivity.this, R.layout.butt, null);
myinter.findViewById(R.id.pz).setOnClickListener(this);
myinter.findViewById(R.id.xc).setOnClickListener(this);
myinter.findViewById(R.id.cj).setOnClickListener(this);
//点击事件
img.setOnClickListener(new View.OnClickListener() {
private PopupWindow pop;
@Override
public void onClick(View v) {
//popwindow
pop = new PopupWindow();
pop.setContentView(myinter);
//设置宽高
pop.setWidth(ActionBar.LayoutParams.WRAP_CONTENT);
pop.setHeight(ActionBar.LayoutParams.WRAP_CONTENT);
//设置焦点
pop.setOutsideTouchable(true);
pop.setFocusable(true);
//设置背景
pop.setBackgroundDrawable(new ColorDrawable(0x000000));
//显示
pop.showAsDropDown(v);
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.pz:
//意图
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//带值跳转
startActivityForResult(intent,111);
break;
case R.id.xc:
//意图
Intent intent1 = new Intent(Intent.ACTION_PICK);
//类型
intent1.setType("image/*");
//带值跳转
startActivityForResult(intent1,222);
break;
case R.id.cj:
// 意图
Intent inten = new Intent(Intent.ACTION_PICK);
// 类型
inten.setType("image/*");
// 跳转回传
startActivityForResult(inten, 333);
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
case 111:
Bitmap bitmap = data.getParcelableExtra("data");
img.setImageBitmap(bitmap);
break;
case 222:
//路径
Uri data1 = data.getData();
img.setImageURI(data1);
break;
case 333:
//得到路径
Uri uri = data.getData();
//裁剪
Intent corp=corp(uri);
//跳转到裁剪页面
startActivityForResult(corp, 444);
break;
case 444:
//位图
Bitmap bitmap2 = (Bitmap) data.getExtras().get("data");
//设置
img.setImageBitmap(bitmap2);
break;
}
}
private Intent corp(Uri uri) {
// TODO Auto-generated method stub
//裁剪的意图
Intent intent = new Intent("com.android.camera.action.CROP");
//裁剪
intent.putExtra("corp", true);
//设置数据类型
intent.setDataAndType(uri, "image/*");
//设置裁剪框的比例
intent.putExtra("aspectX", 1);
intent.putExtra("aspectX", 1);
//设置裁剪后的比例
intent.putExtra("outputX", 250);
intent.putExtra("outputY", 250);
//设置裁剪后图片的格式
intent.putExtra("outputFormat", "JPEG");
//返回数据
intent.putExtra("return-data", true);
return intent;
}
}
到这里拍照,相册,裁剪的功能就完成了,希望能够帮助到你。。。