用相机拍照后,我想将其保存在该布局中。我还想将其保存到文件中,并在创建活动时能够加载该图片(因此,如果我切换到其他活动并返回到此活动)。到目前为止,我可以拍照并显示它,但是如果我多次切换活动,图片就会丢失。我有以下相关代码:
我使用setImage()
以下命令加载图片OnCreate :
private void setImage(){
if (loadPicture("hello", bitmap) != null) {
Toast.makeText(this, "not null", Toast.LENGTH_SHORT).show();
imageView.setImageBitmap(loadPicture("hello", bitmap));
}
}
private void takePicture(){
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
File photo =
new File(Environment.getExternalStorageDirectory(), "Pic.jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
imageUri = Uri.fromFile(photo);
startActivityForResult(intent, 0);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Uri selectedImage = imageUri;
getContentResolver().notifyChange(selectedImage, null);
ContentResolver cr = getContentResolver();
try {
bitmap = android.provider.MediaStore.Images.Media
.getBitmap(cr, selectedImage);
imageView.setImageBitmap(Bitmap.createScaledBitmap(bitmap, bitmap.getHeight()/2, bitmap.getWidth()/2, false));
//**Where I save the picture**
savePicture("hello", bitmap, getApplicationContext());
}
private void savePicture(String filename, Bitmap b, Context ctx){
try {
ObjectOutputStream oos;
FileOutputStream out;// = new FileOutputStream(filename);
out = ctx.openFileOutput(filename, Context.MODE_PRIVATE);
oos = new ObjectOutputStream(out);
b.compress(Bitmap.CompressFormat.PNG, 100, oos);
oos.close();
oos.notifyAll();
out.notifyAll();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private Bitmap loadPicture(String filename, Bitmap b){
// Drawable myImage = null;
try {
FileInputStream fis = openFileInput(filename);
ObjectInputStream ois = null;
try {
ois = new ObjectInputStream(fis);
} catch (StreamCorruptedException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
// myImage = Drawable.createFromStream(ois, filename);
b = BitmapFactory.decodeStream(ois);
try {
ois.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// return myImage;
return b;
}
听起来您的代码可以正常工作,但是当活动恢复时,您将丢失图像。您可能需要用onPostResume()而不是onCreate()加载图片。感觉活动生命周期是解决问题的关键。我有几个问题要评论。
问题内容: Go的新手(我正在研究的第一个简单项目)。 问题:如何从URL获取图像,然后将其保存到计算机中? 这是我到目前为止的内容: 但是,当我运行此代码时,我得到 我假设我必须将image.Image(变量)转换为未定义的字节数?那是解决这个问题的正确方法吗? 问题答案: 无需解码文件。只需将响应正文复制到您打开的文件中即可。这是修改后的示例中的交易: 是数据流,并实现了接口-意味着您可以按顺
我已经花了六个小时从谷歌的文件,我仍然不知道如何开始与这个。我想做的就是让我现有的Android应用程序可以从Google Drive读取文件,上传新文件到Google Drive,并编辑Google Drive上的现有文件。 我读到过Drive SDK v2专注于让Android(以及一般的移动)开发人员轻松地使用它,但在他们的文档中似乎几乎没有任何关于它的内容。 理想的情况下,我希望有人能指出
目前,我的(使用的是Stackoverflow,我自己没有完整地编写)代码如下所示: 我得到错误:“打开失败;EACCES(权限被拒绝)”。 我的舱单是这样的:
我尝试用以下代码保存从internet下载的文件 但在运行时,我得到的错误如下 03-04 20:42:51.080 8972-8972/com.example.me.demo2 E/BitmapFactory:无法解码流:java.io.FileNotFoundExcoop: /storage/emulated/0/.tanks/4a100abb-0e55-4062-8c37-f11f4189e
我使用以下代码打开proc_open进程,并将句柄和管道保存到文件中: 在第二个时刻,我需要从文件中检索这个文件句柄,我使用了这个代码: 当然,在这一点上,如果我试图关闭管道,我会得到一个错误,资源预期,整数给定。 我怎样才能让这工作?(注意:这是我正在寻找的解决方案) 但是或者,我也可以得到进程的pid,然后使用这个pid来停止或杀死进程,或者对进程做任何其他事情,但是管道呢?如何读取/写入或保
当我运行progressdialog出现在屏幕上时,它突然停止运行,并发出通知“应用程序停止了,再试一次”,然后我在android manitor上重复了这个错误,当然我首先要做的是: