Android 从本地选取图片或者拍照填充ImageView
来源:互联网 发布:mac os升级 编辑:程序博客网 时间:2024/05/17 07:18
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
final CharSequence[] items = { "相册", "拍照" };
AlertDialog dlg = new AlertDialog.Builder(CardFrontActivity.this).setTitle("选择照片").setItems(items,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
//这里item是根据选择的方式, 在items数组里面定义了两种方式,拍照的下标为1所以就调用拍照方法
if(which==1){
//拍照要先存入储存卡或者内存,否则读取图片会模糊
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyyMMddhhmmss");
String nowdata = sdf.format(new Date());
String pictureName = "_IMG_" + nowdata + ".jpg";
photoPath = Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/DCIM/Camera/" + pictureName;
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(new File(photoPath)));
startActivityForResult(intent, 1);
}else{
Intent getImage = new Intent(Intent.ACTION_GET_CONTENT);
getImage.addCategory(Intent.CATEGORY_OPENABLE);
getImage.setType("image/jpeg");
startActivityForResult(getImage, 0);
}
}
}).create();
dlg.show();
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
ContentResolver contentResolver = getContentResolver();
/**
* 因为两种方式都用到了startActivityForResult方法,这个方法执行完后都会执行onActivityResult方法,
* 所以为了区别到底选择了那个方式获取图片要进行判断,这里的requestCode跟startActivityForResult里面第二个参数对应
*/
if(requestCode==0){
try {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
photoView.setImageBitmap(BitmapFactory.decodeFile(picturePath));
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}else if(requestCode==1){
try {
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inSampleSize=1;
if(myBitmap!=null)
myBitmap.recycle();
myBitmap = BitmapFactory
.decodeFile(photoPath,opts);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
myBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
photoView.setImageBitmap(myBitmap);
}
}
- Android 从本地选取图片或者拍照填充ImageView
- Android拍照或者选取本地图片
- android 从本地或者拍照上传图片
- Android 拍照或从本地相册选取图片
- 相机拍照或者从本地获取图片上传服务器,并放到imageview上
- Android设置头像,手机拍照或从本地相册选取图片作为头像
- Android设置头像,手机拍照或从本地相册选取图片作为头像
- Android设置头像,手机拍照或从本地相册选取图片作为头像
- Android设置头像,手机拍照或从本地相册选取图片作为头像
- Android上传本地图片或者拍照上传
- Android设置拍照或者上传本地图片
- Android 拍照上传和拍照本地显示,拍照剪切上传,选取本地图片剪切上传
- Android-ImageView显示选择本地图片或拍照
- Android 拍照和从本地获取图片
- 从本地选取相册和相机拍照
- 使用AlertDialog弹窗实现相机拍照或者从图库选取图片显示
- Android 选取图片、手机拍照以及保存图片到本地、读取图片
- Android 图片拉伸,填充ImageView
- 【Cocos2D-X 游戏引擎】初窥门径(14)CCTableView
- windows 性能计数器
- 两百多的鞋穿还不到五六次就破了又买了双意尔康皮鞋
- iOS 创建单例的安全方法。
- c++中的相对路径
- Android 从本地选取图片或者拍照填充ImageView
- weblogic + apache 配置 当两个location重叠的情况
- 我能写个啥吗
- 九度-1023-EXCEL排序
- 开发板学习记录一:搭建环境
- MsXml创建和解析XML示例
- mysql授权远程访问
- 原码,反码,补码解释
- MongoDB基本管理命令