gpt4 book ai didi

android - 拍照后如何从 ImageView 保存图像

转载 作者:太空宇宙 更新时间:2023-11-03 13:03:00 27 4
gpt4 key购买 nike

我正在从图库中挑选图片或用相机拍摄。如果我将图片放入我的 imageView 中,然后单击确认按钮,我该如何保存该图片?我必须使用 saveState() 吗?请发表一些评论。谢谢。

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != RESULT_OK) return;
switch (requestCode)
{
case PICK_FROM_CAMERA:
Bitmap selectedImage = (Bitmap) data.getExtras().get("data");
selectedImage = Bitmap.createScaledBitmap(selectedImage, 80, 80, false);
mImageView.setImageBitmap(selectedImage);
break;

case PICK_FROM_GALLERY:
Uri selectedImageUri = data.getData();
selectedImagePath = getPath(selectedImageUri);
System.out.println("Image Path : " + selectedImagePath);
mImageView.setImageURI(selectedImageUri);
break;
}
}

private void saveState()
{
String name = (String) nameEdit.getText().toString();
String category = (String) categoryEdit.getText().toString();
String expired_date = (String) expired_Date_Btn.getText().toString();
ImageView image = (ImageView) mImageView.setImageURI(); //how to edit?
if(mRowId == null)
{
long id = mDbHelper.insertItem(category, name, expired_date);
if(id>0)
{
mRowId = id;
}
}
else
{
mDbHelper.updateItem(mRowId, category, name, expired_date);
}
}

//How can I save image after clicking button?
confirmButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v){
setResult(RESULT_OK);
finish();
}
});

最佳答案

您可以按照以下步骤保存所有View(不仅是ImageView)的图像:

1.获取 View 的位图:

public Bitmap loadBitmapFromView(View v) {
Bitmap b = Bitmap.createBitmap(v.getWidth(), v.getHeight(),
Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.draw(c);
v.invalidate();
return b;
}

2.将其保存在您的 SD 卡文件中(或任何您想要的地方):

protected String saveBitmap(Bitmap bm, String name) throws Exception {
String tempFilePath = Environment.getExternalStorageDirectory() + "/"
+ getPackageName() + "/" + name + ".jpg";
File tempFile = new File(tempFilePath);
if (!tempFile.exists()) {
if (!tempFile.getParentFile().exists()) {
tempFile.getParentFile().mkdirs();
}
}

tempFile.delete();
tempFile.createNewFile();

int quality = 100;
FileOutputStream fileOutputStream = new FileOutputStream(tempFile);

BufferedOutputStream bos = new BufferedOutputStream(fileOutputStream);
bm.compress(CompressFormat.JPEG, quality, bos);

bos.flush();
bos.close();

bm.recycle();

return tempFilePath;
}


这些代码取 self 的一个项目,但我认为它们很容易理解和重用。希望对您有所帮助。

关于android - 拍照后如何从 ImageView 保存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8320094/

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