gpt4 book ai didi

android - 拍照,将其保存在应用程序可绘制对象中并在 ImageButton 中显示

转载 作者:太空狗 更新时间:2023-10-29 13:33:02 24 4
gpt4 key购买 nike

我有一个带有 ImageButton 的 Android 应用程序。当用户点击它时, Intent 启动以显示相机 Activity 。当用户捕获图像时,我想将其保存在应用程序的可绘制文件夹中,并将其显示在用户单击的同一个 ImageButton 中,以替换之前的可绘制图像。我使用了此处发布的 Activity :Capture Image from Camera and Display in Activity

...但是当我捕获图像时, Activity 不会返回到包含 ImageButton 的 Activity 。

编辑代码为:

public void manage_shop()
{
static final int CAMERA_REQUEST = 1888;

[...]
ImageView photo = (ImageView)findViewById(R.id.getimg);
photo.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
Intent camera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(camera, CAMERA_REQUEST);
}
});
[...]
}

和 onActivityResult():

protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
ImageButton getimage = (ImageButton)findViewById(R.id.getimg);

if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK)
{
Bitmap getphoto = (Bitmap) data.getExtras().get("data");
getimage.setImageBitmap(getphoto);
}
}

如何将捕获的图像也存储在可绘制文件夹中?

最佳答案

将图像保存到文件后,您可以使用以下代码段将其添加到图库。

ContentValues values = new ContentValues(); 
values.put(MediaStore.Images.Media.TITLE, new File(path).toString());
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.Images.Media.DATA, path);
getContentResolver().insert( MediaStore.Images.Media.EXTERNAL_CONTENT_URI , values);

要将文件保存到目录,请执行以下操作

private saveFileToDir() {
final InputStream in = Wherever you input stream comes from;

File f = generatePhotoFile();

OutputStream out = new FileOutputStream(f);
byte[] buffer = new byte[1024];

int len;
while ((len=in.read(buffer))>0)
{
out.write(buffer,0,len);
}

in.close();
out.flush();
out.close();
}

private File generatePhotoFile() throws IOException {
Date date = new Date();
DateFormat df = new SimpleDateFormat("yyyymmdd_hhmmss");

String newPicFile = "IMG_"+ df.format(date) + ".jpg";

File f = new File(Environment.getExternalStorageDirectory()+"/DCIM/Camera/", newPicFile);

if (!f.exists())
{
if(!f.getParentFile().exists())
f.getParentFile().mkdir();

f.createNewFile();
}

return f;
}

关于android - 拍照,将其保存在应用程序可绘制对象中并在 ImageButton 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13483515/

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