Camera调用二
2015-11-28 11:20
218 查看
package com.example.camera;
import java.io.File;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
public class MainActivity extends Activity implements OnClickListener{
ImageView imageView;
String username = "radmany";
String path = null;
SelectPicPopupWindow menuWindow;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.imageView1);
imageView.setOnClickListener(this);
//获取SD卡的绝对路径
path = Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator;
//以用户名命名
File file = new File(path+username+".jpg");
//如果图片存在,通过imageview显示
if (file.exists()) {
imageView.setImageURI(Uri.fromFile(file));
}
}
@Override
public void onClick(View v) {
menuWindow = new SelectPicPopupWindow(MainActivity.this, itemsOnClick);
//显示窗口的位置
menuWindow.showAtLocation(imageView, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0);
}
private OnClickListener itemsOnClick = new OnClickListener(){
@Override
public void onClick(View v) {
menuWindow.dismiss();
Intent intent = null;
switch (v.getId()) {
//点击拍张照
case R.id.button1:
//设置拍照后保存的位置
File file = new File(path+"temp.jpg");
//将数据转成uri对象
Uri uri = Uri.fromFile(file);
//隐式方式打开相机
intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//打开相机时,给相机一个路径,拍照完成之后,保存到该路径
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
//不反回数据
intent.putExtra("return-data", false);
//开启人脸识别
intent.putExtra("noFaceDetection", false);
startActivityForResult(intent, 0x99);
break;
case R.id.button2:
//从相册中选取,融合选择图片和裁剪的能
File file2 = new File(path+username+".jpg");
//转成uri
Uri uri2 = Uri.fromFile(file2);
//不打开相册
intent = new Intent(Intent.ACTION_GET_CONTENT);
//设置打开的类型
intent.setType("image/*");
//设置裁剪图片保存的路径
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri2);
//不反回数据
intent.putExtra("return-data", false);
//crop=true,有这句话才能出来最后裁剪的页面
intent.putExtra("crop", "true");
//裁剪框的比例
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
//裁剪后的尺寸
// 裁剪后图片的尺寸
intent.putExtra("outputX", 200);
intent.putExtra("outputY", 200);
startActivityForResult(intent, 0x55);
default:
break;
}
}
};
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode==0x99&&resultCode==Activity.RESULT_OK) {
File user = new File(path+username+".jpg");
File temp = new File(path+"temp.jpg");
//打开截图功能
Intent i = new Intent("com.android.camera.action.CROP");
//设置图片资源和格式
i.setDataAndType(Uri.fromFile(temp), "image/jpeg");
//把截取后的图片保存到指定位置
i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(user));
//crop=true,有这句话才能出来最后裁剪的页面
i.putExtra("crop", "true");
//裁剪框比例
i.putExtra("outputX", 250);
i.putExtra("outputY", 200);
//是否有返回值
i.putExtra("return-data", true);
startActivityForResult(i, 0x89);
} else if (requestCode == 0x89 && resultCode == Activity.RESULT_OK) {
Bitmap bb = data.getParcelableExtra("data");//得到裁剪后的头像
imageView.setImageBitmap(bb);//设置头像的显示
} else if (requestCode == 0x55 && resultCode == Activity.RESULT_OK) {
Bitmap bm = BitmapFactory.decodeFile(path+username+".jpg");//从文件中加载图片
imageView.setImageBitmap(bm);//设置图片显示
}
};
}
import java.io.File;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
public class MainActivity extends Activity implements OnClickListener{
ImageView imageView;
String username = "radmany";
String path = null;
SelectPicPopupWindow menuWindow;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.imageView1);
imageView.setOnClickListener(this);
//获取SD卡的绝对路径
path = Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator;
//以用户名命名
File file = new File(path+username+".jpg");
//如果图片存在,通过imageview显示
if (file.exists()) {
imageView.setImageURI(Uri.fromFile(file));
}
}
@Override
public void onClick(View v) {
menuWindow = new SelectPicPopupWindow(MainActivity.this, itemsOnClick);
//显示窗口的位置
menuWindow.showAtLocation(imageView, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0);
}
private OnClickListener itemsOnClick = new OnClickListener(){
@Override
public void onClick(View v) {
menuWindow.dismiss();
Intent intent = null;
switch (v.getId()) {
//点击拍张照
case R.id.button1:
//设置拍照后保存的位置
File file = new File(path+"temp.jpg");
//将数据转成uri对象
Uri uri = Uri.fromFile(file);
//隐式方式打开相机
intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//打开相机时,给相机一个路径,拍照完成之后,保存到该路径
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
//不反回数据
intent.putExtra("return-data", false);
//开启人脸识别
intent.putExtra("noFaceDetection", false);
startActivityForResult(intent, 0x99);
break;
case R.id.button2:
//从相册中选取,融合选择图片和裁剪的能
File file2 = new File(path+username+".jpg");
//转成uri
Uri uri2 = Uri.fromFile(file2);
//不打开相册
intent = new Intent(Intent.ACTION_GET_CONTENT);
//设置打开的类型
intent.setType("image/*");
//设置裁剪图片保存的路径
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri2);
//不反回数据
intent.putExtra("return-data", false);
//crop=true,有这句话才能出来最后裁剪的页面
intent.putExtra("crop", "true");
//裁剪框的比例
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
//裁剪后的尺寸
// 裁剪后图片的尺寸
intent.putExtra("outputX", 200);
intent.putExtra("outputY", 200);
startActivityForResult(intent, 0x55);
default:
break;
}
}
};
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode==0x99&&resultCode==Activity.RESULT_OK) {
File user = new File(path+username+".jpg");
File temp = new File(path+"temp.jpg");
//打开截图功能
Intent i = new Intent("com.android.camera.action.CROP");
//设置图片资源和格式
i.setDataAndType(Uri.fromFile(temp), "image/jpeg");
//把截取后的图片保存到指定位置
i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(user));
//crop=true,有这句话才能出来最后裁剪的页面
i.putExtra("crop", "true");
//裁剪框比例
i.putExtra("outputX", 250);
i.putExtra("outputY", 200);
//是否有返回值
i.putExtra("return-data", true);
startActivityForResult(i, 0x89);
} else if (requestCode == 0x89 && resultCode == Activity.RESULT_OK) {
Bitmap bb = data.getParcelableExtra("data");//得到裁剪后的头像
imageView.setImageBitmap(bb);//设置头像的显示
} else if (requestCode == 0x55 && resultCode == Activity.RESULT_OK) {
Bitmap bm = BitmapFactory.decodeFile(path+username+".jpg");//从文件中加载图片
imageView.setImageBitmap(bm);//设置图片显示
}
};
}
相关文章推荐
- 用Spark查询HBase中的表数据
- Day-5
- AndroidStudio快捷键汇总
- delphi 生成网卡MAC地址
- JS基础—选项卡套选项卡(函数传参)
- ps制作文字人物
- Cocos2dx的安装手把手教你,很简单哦
- python知识点
- Android RecyclerView
- iOS系统中应用程序间通信的方法及装置
- HttpClinet____Post请求
- ImageLoader开源框架
- 用Spark向HBase中插入数据
- 如何从kernel源码中查出版本号(转载)
- WordPress主题制作(7)-关于插件制作
- A2dpSinkAvrcpService.java
- C语言判断输入的字符串是否为回文结构
- Python多线程编程及同步处理
- wamp的www目录更改为指定目录
- NSURLSESSION的使用