- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的应用程序中使用相机捕捉图像。
1) 它将图像保存在 sdcard 中,名称是我在 intent 中传递的。
2) 也将图像保存在 sdcard/dcim 文件夹中
我不希望相机将图像保存在#2 中提到的位置。我正在从#1 中的位置删除图像。并且也想从 #2 中的位置删除图像。
下面是捕获图像的代码 fragment 。
SD_CARD_TEMP_DIR = Environment.getExternalStorageDirectory() + File.separator + "tempImage.jpg";
file =new File(SD_CARD_TEMP_DIR);
Intent takePictureFromCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureFromCameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(takePictureFromCameraIntent, TAKE_PICTURE_WITH_CAMERA);
最佳答案
这个Thread帮助我解决了这个问题。现在我在做什么,1) 捕获图像,2) 读取媒体 uri 中的最后一张图像,然后删除它。
private void FillPhotoList() {
// initialize the list!
GalleryList.clear();
String[] projection = { MediaStore.Images.ImageColumns.DISPLAY_NAME };
for(int i=0;i<projection.length;i++)
Log.i("InfoLog","projection "+projection[0].toString());
// intialize the Uri and the Cursor, and the current expected size.
Cursor c = null;
Uri u = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
Log.i("InfoLog","FillPhoto Uri u "+u.toString());
// Query the Uri to get the data path. Only if the Uri is valid.
if (u != null)
{
c = managedQuery(u, projection, null, null, null);
}
// If we found the cursor and found a record in it (we also have the id).
if ((c != null) && (c.moveToFirst()))
{
do
{
// Loop each and add to the list.
GalleryList.add(c.getString(0)); // adding all the images sotred in the mobile phone(Internal and SD card)
}
while (c.moveToNext());
}
Log.i(INFOLOG,"gallery size "+ GalleryList.size());
}
public void movingCapturedImageFromDCIMtoMerchandising()
{
// This is ##### ridiculous. Some versions of Android save
// to the MediaStore as well. Not sure why! We don't know what
// name Android will give either, so we get to search for this
// manually and remove it.
String[] projection = { MediaStore.Images.ImageColumns.SIZE,
MediaStore.Images.ImageColumns.DISPLAY_NAME,
MediaStore.Images.ImageColumns.DATA,
BaseColumns._ID,};
// intialize the Uri and the Cursor, and the current expected size.
for(int i=0;i<projection.length;i++)
Log.i("InfoLog","on activityresult projection "+projection[i]);
//+" "+projection[1]+" "+projection[2]+" "+projection[3] this will be needed if u remove the for loop
Cursor c = null;
Uri u = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
Log.i("InfoLog","on activityresult Uri u "+u.toString());
if (CurrentFile != null)
{
// Query the Uri to get the data path. Only if the Uri is valid,
// and we had a valid size to be searching for.
if ((u != null) && (CurrentFile.length() > 0))
{
//****u is the place from data will come and projection is the specified data what we want
c = managedQuery(u, projection, null, null, null);
}
// If we found the cursor and found a record in it (we also have the size).
if ((c != null) && (c.moveToFirst()))
{
do
{
// Check each area in the gallery we built before.
boolean bFound = false;
for (String sGallery : GalleryList)
{
if (sGallery.equalsIgnoreCase(c.getString(1)))
{
bFound = true;
Log.i("InfoLog","c.getString(1) "+c.getString(1));
break;
}
}
// To here we looped the full gallery.
if (!bFound) //the file which is newly created and it has to be deleted from the gallery
{
// This is the NEW image. If the size is bigger, copy it.
// Then delete it!
File f = new File(c.getString(2));
// Ensure it's there, check size, and delete!
if ((f.exists()) && (CurrentFile.length() < c.getLong(0)) && (CurrentFile.delete()))
{
// Finally we can stop the copy.
try
{
CurrentFile.createNewFile();
FileChannel source = null;
FileChannel destination = null;
try
{
source = new FileInputStream(f).getChannel();
destination = new FileOutputStream(CurrentFile).getChannel();
destination.transferFrom(source, 0, source.size());
}
finally
{
if (source != null)
{
source.close();
}
if (destination != null)
{
destination.close();
}
}
}
catch (IOException e)
{
// Could not copy the file over.
ToastMaker.makeToast(this, "Error Occured", 0);
}
}
//****deleting the file which is in the gallery
Log.i(INFOLOG,"imagePreORNext1 "+imagePreORNext);
Handler handler = new Handler();
//handler.postDelayed(runnable,300);
Log.i(INFOLOG,"imagePreORNext2 "+imagePreORNext);
ContentResolver cr = getContentResolver();
cr.delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, BaseColumns._ID + "=" + c.getString(3), null);
break;
}
}
while (c.moveToNext());
}
}
}
关于android - 从相机捕获图像,它存储在 sdcard/dcim 文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8840786/
我的应用程序中有一个方法可以检索我的 DCIM/Camera 文件夹中最后保存的图像,并将其复制到 SD 卡上的另一个位置。我刚刚在另一部手机上测试过它,发现它默认保存到 DCIM/100MEDIA。
我正在使用 native Android 相机并将文件保存到应用程序数据文件夹 (/mnt/sdcard/Pictures/)。同时 - 在某些设备上 - 另一张照片副本保存到 DCIM 文件夹。 这
假设我正在编写一个替代的相机应用程序,并希望将图像写入与相机完全相同的位置,并以与相机完全相同的名称命名它们。 我将如何做到这一点? 如何知道相机文件的位置? 如何知道当前的命名约定? 如何获得该目录
我正在尝试获取默认图像位置中的图像并将文件名打印到 TextView 中。 当我尝试访问该目录时,我总是在 listFiles 上收到空指针异常。我尝试了几种方法来获取目录路径,但似乎没有任何效果。
已解决 我对 int 返回类型使用了一个字节,并且在错误的时刻进行了转换,请参阅我的回答。 原始问题 是否允许读取文件夹 DCIM/Camera 中的文件?我尝试在外部存储的很多地方进行读写操作,但它
我在我的 Activity 中使用默认相机 Intent 来捕捉图像。之后,我将它们的路径存储在一个数组中。在 Activity 结束时,我将图像复制到我的应用程序文件夹中。由于某种原因,图像没有以完
我必须在我的 Android 应用程序中包含一个图像选择器。我是这样设置的: Intent intentGallery = new Intent(Intent.ACTION_PICK, android
我正在尝试从 DCIM 在我的 Activity 中加载图片。我使用以下代码: int BROWSE_PICTURES = 0; public void openBrowsePictures() {
我想在 DCIM 目录中创建一个文件。我尝试了一些变体,但我没有将文件放入目录中。 NSSearchPathDirectory 不起作用,所以我做错了什么? 因为路径是目录,所以我没有退出。 谁能指出
我正在编写一个应用程序,它应该上传存储在内存和 SD 卡上的 DCIM/Camera 文件夹中的相机拍摄的照片。 这意味着在每次上传之前,必须检查所有可用存储空间是否存在任何图像。 我使用 Envir
我正在从 SD 卡获取所有图像,但现在我只想显示用相机拍摄的照片(在 DCIM 文件夹中)。 这有可能吗? 最佳答案 尝试: Environment.getExternalStoragePublicD
这个问题在这里已经有了答案: Android: Duplicate photo storage in DCIM folder (1 个回答) 关闭 5 年前。 https://developer.a
我想从 DCIM 目录中获取所有文件列表,但我不知道为什么,它不起作用。我正在使用下面的示例,但没有数据。 Environment.DIRECTORY_DCIM 或 Environment.getEx
我的想法:无需 Wi-Fi 或蓝牙即可同步音乐。首先我获取我想要的文件,然后将它们压缩成 zip 文件。然后我想将扩展名重命名为JPG,以便iPad可以识别该文件。然后我将其复制到 SD 卡,然后使用
我想知道如何仅使用 Kivy 获取 Android 上 DCIM 文件夹的路径。 PyJinus 不是一个选项,因为它目前不适用于 Python 3.5 到目前为止我尝试的是: DATA_FOLDER
我已经下载this library我正在运行下面的代码: import java.awt.image.BufferedImage; import java.io.BufferedOutputStrea
嘿,我想清空内部文件夹“/storage/emulated/0/DCIM/Camera”这对我来说适用于以下代码 public void emptyDir() { File d
我正在创建用于播放视频的简单 Android 应用。 1 DCIM/folder/test.mp4 - 视频根本无法播放 2 DCIM/test.mp4 - 完美运行(播放视频) Intent
我在我的应用程序中使用相机捕捉图像。 1) 它将图像保存在 sdcard 中,名称是我在 intent 中传递的。 2) 也将图像保存在 sdcard/dcim 文件夹中 我不希望相机将图像保存在#2
我需要从 native 代码获取 DCIM 目录路径。我正在使用以下代码 fragment : jclass envClass = env->FindClass("android/os/Environ
我是一名优秀的程序员,十分优秀!