我正在使用意图启动相机:
Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
getParent().startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
Run Code Online (Sandbox Code Playgroud)
和使用:
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
photoImage.setImageBitmap(thumbnail);
photoImage.setVisibility(View.VISIBLE);
Run Code Online (Sandbox Code Playgroud)
但它只是一个缩略图,我如何获得完整的位图?我知道我可以使用自己的Activity并使用:
Camera.PictureCallback()
Run Code Online (Sandbox Code Playgroud)
但无论如何使用Intent做到了吗?
谢谢!
编辑:
我也尝试过:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Uri uri = data.getData();
imageView.setImageURI(uri);
}
Run Code Online (Sandbox Code Playgroud)
它适用于从库中选择的照片,但对于相机意图,data.getData()返回null.
嗨我ACTION_IMAGE_CAPTURE
用于捕获图像使用Intent
如下:
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(
MediaStore.EXTRA_OUTPUT, (new File(Environment.getExternalStorageDirectory(),
String.valueOf(System.currentTimeMillis()) + ".jpg"))
);
startActivityForResult(cameraIntent, 0);
Run Code Online (Sandbox Code Playgroud)
我需要将图像存储在SD卡中,并使用该onActivityResult
方法检索该图像的路径.我不知道如何获取当前捕获图像的图像路径.
如果有人知道请帮助.
谢谢
我目前正在开发一款使用内置相机的应用程序.我点击按钮调用此代码段:
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
//Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
String path = Environment.getExternalStorageDirectory().getAbsolutePath();
path += "/myFolder/myPicture.jpg";
File file = new File( path );
//file.mkdirs();
Uri outputFileUri = Uri.fromFile( file );
//String absoluteOutputFileUri = file.getAbsolutePath();
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent, 0);
Run Code Online (Sandbox Code Playgroud)
采取用相机图片后,JPG被很好保存在SD卡/ MyFolder中/ myPicture.jpg,但它也存储在/ SD卡/ DCIM /摄像机/ 2011-06-14 10.36.10.jpg,这是默认路径.
有没有办法阻止内置Camera将图片存储在默认文件夹中?
编辑:我想我会直接使用Camera类
我有一个可以制作图片并上传它们的应用程序.上传需要照片的文件路径,但我无法得到它.
这是我的代码:
public void maakfoto (View v) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
imageView.setImageBitmap(photo);
knop.setVisibility(Button.VISIBLE);
System.out.println(mImageCaptureUri);
}
}
Run Code Online (Sandbox Code Playgroud)
请帮我看一下文件路径.
谢谢
我想用相机意图制作一张照片并将其保存到默认的DCIM文件夹中.然后我想获得存储图片的路径/文件名.
我正在尝试使用以下代码:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_PICTURE);
Run Code Online (Sandbox Code Playgroud)
使用此代码,相机打开,在拍完一张照片后关闭并将照片保存到默认图像文件夹(通常是/ dcim/camera或sdcard/dcim/camera ......)
但是我怎样才能获得拍摄照片的路径和文件名?我已经试过几乎所有在onActivityResult
我试过
String result = data.getData();
Run Code Online (Sandbox Code Playgroud)
和
String result = data.getDataString();
Run Code Online (Sandbox Code Playgroud)
和
String result = data.toURI();
Run Code Online (Sandbox Code Playgroud)
和
Uri uri = data.getData();
Run Code Online (Sandbox Code Playgroud)
等等
我研究了最近两天为此找到解决方案,网上有很多文章和stackoverflow,但没有任何作用.我不想要缩略图,我只想要路径(uri?)到相机拍摄的图像.
感谢您的任何帮助
编辑:当我尝试:
path=Environment.DIRECTORY_DCIM + "/test.jpg";
File file = new File(path);
Uri outputFileUri = Uri.fromFile(file);
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent, TAKE_PICTURE);
Run Code Online (Sandbox Code Playgroud)
它不会将图像存储为test.jpg但是使用正常的图像名称2011-10-03 ..... jpg(但也没关系,我只需要图像的路径,这个名字无关紧要是).
最好的祝福
再次编辑
path=Environment.getExternalStorageDirectory().getPath() + "/DCIM/Camera/";
File file = new File(path,"test111111111.jpg");
try {
file.createNewFile();
} catch (IOException e) { …
Run Code Online (Sandbox Code Playgroud) 我正在使用Camera Activity来捕捉图片.我用MediaStore.EXTRA_OUTPUT额外参数调用它.图像被正确保存到提供的路径,把它保存到图库文件夹,所以我可以在"图库"应用程序中查看图像 - 我可以避免这种情况吗?
...
File file = new File(Environment.getExternalStorageDirectory(), "Test.jpg" );
iImageOutputUri = Uri.fromFile( file );
// Start camera intent to capture image
Intent intent = new Intent( MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, iImageOutputUri );
startActivityForResult( intent, CAPTURE_IMAGE );
...
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在使用MediaStore.ACTION_IMAGE_CAPTURE意图捕获图像.它在大多数设备上运行良好.但它在一些最新的Android设备中无法正常工作.
我的意图是使用相机捕获图像并将其发送到服务器,但不将该图像存储在设备的默认库中.
**:当我捕获图像时,它会在onActivityResult方法中返回一些其他图库图像,而不是在某些最新的Android设备中捕获图像.我使用下面的代码来捕获和存储图像.
public void launchCamera(View v) {
Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(camera, CAMERA_PIC_REQUEST );
}
Run Code Online (Sandbox Code Playgroud)
在onActivityResult方法中,
String[] projection = { MediaStore.Images.ImageColumns.SIZE,
MediaStore.Images.ImageColumns.DISPLAY_NAME,
MediaStore.Images.ImageColumns.DATA, BaseColumns._ID, };
Cursor c = null;
Uri u = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
try {
if (u != null) {
c = managedQuery(u, projection, null, null, null);
}
if ((c != null) && (c.moveToLast())) {
Bitmap thumbnail = getBitMapFromLocalPath(c.getString(2), 3);
idsImagesgot.add(thumbnail);
ContentResolver cr = getContentResolver();
cr.delete( MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
BaseColumns._ID + "=" + c.getString(3), null);
}
} finally …
Run Code Online (Sandbox Code Playgroud) 我正在制作一个拍摄照片的程序,然后显示它的缩略图.使用模拟器时一切顺利,丢弃按钮删除照片.但是在真实设备上,相机意图将图像保存在imageUri变量上,第二个命名就像我刚刚打开相机并自己拍照一样.
private static final int CAMERA_PIC_REQUEST = 1337;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.camera);
//start camera
values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, "New Picture");
values.put(MediaStore.Images.Media.DESCRIPTION,"From your Camera");
imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
image = (ImageView) findViewById(R.id.ImageView01);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, CAMERA_PIC_REQUEST);
//save the image buttons
Button save = (Button) findViewById(R.id.Button01);
Button close = (Button) findViewById(R.id.Button02);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if …
Run Code Online (Sandbox Code Playgroud) 当我使用此代码 - >
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
Run Code Online (Sandbox Code Playgroud)
我可以将图像保存到指定的路径,但它也保存到库中.我不想将图像保存到图库.请帮忙.
提前感谢您宝贵的时间.