gpt4 book ai didi

Android Camera Intent 创建两个文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:19:57 24 4
gpt4 key购买 nike

我正在制作一个拍摄照片然后显示其缩略图的程序。使用模拟器时一切顺利,丢弃按钮会删除照片。但在真实设备上,相机 Intent 将图像保存在 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 (requestCode == CAMERA_PIC_REQUEST && resultCode == RESULT_OK) {
try{
thumbnail = MediaStore.Images.Media.getBitmap(getContentResolver(), imageUri);
image.setImageBitmap(thumbnail);
}
catch(Exception e){
e.printStackTrace();
}
}
else{
finish();
}
}

public void myClickHandler(View view) {
switch (view.getId()) {
case R.id.Button01:
finish();
break;
case R.id.Button02:
dicard();
}
}

private void dicard(){
getContentResolver().delete(imageUri, null, null);
finish();
}

最佳答案

某些 Android 手机将原始照片存储在图库中,而缩略图仅存储在您所在的位置。您对原始请求做了什么并不重要。我有两款不同的 HTC 手机可以做到这一点,还有很多其他品牌的手机没有做到这一点。

我用另一种方式解决了这个问题。我对库中的每个项目都进行了查询,并将 BucketID 加载到一个数组中。当我的应用程序启动相机应用程序时,我会这样做。当相机应用程序返回时,我进行相同的查询(最近添加的项目以节省时间)。我将其与我的原始列表进行比较并找到新的 BucketID。接下来,我将此图像的大小与我明确设置为输出的文件进行比较。如果它更大,我复制它,替换我拥有的。然后我删除该文件并将其从图库中删除。

你知道什么的痛苦!

[编辑] 当我发现一部手机没有保留唯一的存储桶 ID 时,我不得不再次更改此设置......请参阅我在这个答案后面的链接中的帖子以了解更多信息。

关于Android Camera Intent 创建两个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4515032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com