Android实现点击图片调用相机拍照并替换点击的图片

吸血的豆芽菜 2016-07-09 03:32:58
例如现在有一个InmageView空间,里面有一张命名为camera1的图片,现在需要实现点击这张图片调用相机拍照后照片替换camera1这张图,而且可以再次电击替换的图循环此操作。
...全文
713 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cyrusfee 2016-07-11
  • 打赏
  • 举报
回复
如果你是调用的系统的拍照那你在: @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { //如果拍照成,返回结果为1 if (resultCode == 1) { //设置你想改变的图片 } } 如果你是自己写的拍照,那你在对应的拍照完成后,做同样的处理即可
ink_s 2016-07-09
  • 打赏
  • 举报
回复
		break;
			case R.id.changepic_pic:

				getImageFromAlbum();

				break;
			case R.id.changepic_camera:

				getImageFromCamera();

				break;
protected void getImageFromAlbum() {
		Intent intent = new Intent(Intent.ACTION_PICK);
		intent.setType("image/*");// 相片类型
		startActivityForResult(intent, 0);
	}

	protected void getImageFromCamera() {
		SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
		Date date = new Date(System.currentTimeMillis());
		String filename = format.format(date);

		File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
		File outputImage = new File(path, filename + ".jpg");
		try {
			if (outputImage.exists()) {
				outputImage.delete();
			}
			outputImage.createNewFile();
		} catch (IOException e) {
			e.printStackTrace();
		}

		imageUri = Uri.fromFile(outputImage);
		intent = new Intent("android.media.action.IMAGE_CAPTURE"); //
		intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
		startActivityForResult(intent, 1);
	}
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (requestCode == 0 && resultCode == RESULT_OK && null != data) {
			Uri uri = data.getData();
			// pic = uri.toString();
			// icon.setImageURI(uri);

			try {
				Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));
				changepic.setImageBitmap(bitmap);

				newpic = uri.toString();

			} catch (FileNotFoundException e) {
				newpic = null;
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		} else if (requestCode == 1 && resultCode == RESULT_OK) {

			try {
				Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri));
				changepic.setImageBitmap(bitmap);
				newpic = imageUri.toString();
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				newpic = null;
			}
			// Toast.makeText(logining.this, imageUri.toString(),
			// Toast.LENGTH_SHORT).show();

			// Uri uri = data.getData();
			// pic = uri.toString();
			// icon.setImageURI(uri);
		} else {
			newpic = null;
			Toast.makeText(getApplicationContext(), "获取图片失败!", Toast.LENGTH_LONG).show();

		}
	}

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧