- 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/
我在 /data/data/files/settings.dat 中有一个文件并想将此文件存储/复制到 sdcard 中,该文件已被很好地读取但是当尝试将其复制到 sdcard 时,我有一个异常(ex
我只想知道如何在android模拟器中删除虚拟sdcard。 最佳答案 有了有关使用“rm -r *”系列命令的预期注意事项和警告,您还可以使用:adb -e shell rm -r/mnt/sdca
我正在尝试将位图保存到图片目录中。这是代码 File path = Environment.getExternalStoragePublicDirectory(Environm
我有一个很大的(50 兆)下载,如果已安装,我想将其加载到 SD 卡中。如果没有sdcard,我就下载到内部存储。我检查两种情况下的可用空间。 我的代码在模拟器和我的 Droid 2 上运行良好。我的
我快被一个奇怪的问题气疯了。如果我在我的代码中创建一个文件夹作为 directory_path = Environment.getExternalStorageDirectory()
我有一个特殊的问题,我有一个在启动完成时启动的 android 服务。服务完成从 sdcard 读取文件并将 pid 写入 sdcard 的工作,但是 .使用日志我知道原因是:无法将数据写入 sdca
我正在为 Yocto (Morty) 开发一个 sdcard 图像类,这基本上是直截了当的。必须在屋顶完成后构建 SD 卡镜像。 这可以由 IMAGE_TYPEDEP_sdcard 指示,在我的情况下
任何人都可以帮我解决 traceview 问题!我创建了 sdcard 并将其安装在我的模拟器上,关闭我的应用程序后,当我尝试拉取复制文件时(使用命令:adb pull/sdcard/calc.tra
我正在开发一个基本的音乐播放器,它将获取 SDCard 上的歌曲。它处于早期阶段,我遇到了一个小问题。每当我在手机上运行该应用程序时,它都能很好地播放 SDCard 上的歌曲。现在,当我在教师手机上运
我正在尝试将我在某些 Activity 中拥有的位图保存到我为此目的创建的目录中的外部存储。将图像保存到 sdcard(外部存储器,而不是外部 sd)的方法在不同的类(和不同的包)中,所以我假设我需要
我知道这个问题可能已经回答了很多次,我也进行了搜索,但我无法解决我的问题。每次我尝试写入 SD 卡时,它似乎都会写入内部存储。我的代码行很简单 File root = android.os.Envir
我想知道,是否可以在重新启动应用程序时暂停下载,退出应用程序并恢复从远程服务器下载文件到手机的 SDCard。 然后跟进问题:我有一个通过 HTTP 下载的代码。我也可以通过 FTP 完成吗?哪个更好
我的应用程序中有一个 Activity ,它基本上是一个画廊,显示位于我的 SD 卡上的图片。我正在使用此功能重新安装 sdcard 以在 Activity 开始时扫描新图像: sendBro
我想在 SD 卡上的特定文件夹中创建新文件时收到通知(通过广播)。我可以创建服务并为其轮询,但我更喜欢系统事件(如果存在的话)。 最佳答案 我找到了。 FileObserver会做的。 关于Andro
随着我应用中数据库的增长,它需要越来越多的内部手机空间。数据库中没有任何敏感/隐私数据,因此我有兴趣将其移至 SD 卡。 我正在使用 SQLiteOpenHelper 来协助数据库工作。据我了解,您不
我正在尝试将 Http 帖子回复中的文件写入 sdcard 上的文件。在检索到数据的字节数组之前,一切正常。 我尝试在 list 中设置 WRITE_EXTERNAL_STORAGE 权限并尝试了我在
我想在 Sdcard 中创建目录,并且我确实遵循: 我添加了:在 list 中。 我通过以下方式获取 root_path:public static final String ROOT_PATH =
我正在尝试使用以下代码在/storage/emulated/0/Pictures 下创建目录: File(Environment.getExternalStoragePublicDir
为什么Environment.getExternalStorageDirectory()返回内部存储(storage/sdcard0/)?就我而言,sdcard0 是本地的,sdcard1 是外部的.
我的对话框显示目录 /sdcard 及其所有文件。选择文件/图像后,路径将与位图图像一起保存,例如 file.name = "/sdcard/Pictures/Screenshots/Screensh
我是一名优秀的程序员,十分优秀!