java - 将ImageView拍摄的照片存储到手机存储中

标签 java android

拍照后,我将图片存储到 ImageView 中,因此,如果有人对如何将 ImageView 上显示的图片存储到手机阶段而无需用户交互有任何想法或建议 提前致谢

enter image description here

public class MainActivity extends Activity {
    ImageView viewpict;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewpict=(ImageView) findViewById(R.id.pict_result);
        Button btn= (Button)findViewById(R.id.camera);

        btn.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View arg0) {
                Intent intent = new Intent (android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            //  Intent intent = new Intent (getApplicationContext(),MainActivity2.class);

                //startActivity(intent);
                startActivityForResult(intent,0);

            }

     });


    }

protected void onActivityResult( int requestCode, int resultCode,Intent data)
{
    if (requestCode==0)
    {
        Bitmap theimage = (Bitmap) data.getExtras().get("data");
        viewpict.setImageBitmap(theimage);
    }

}

}

最佳答案

尝试:

viewpict.buildDrawingCache();
Bitmap bm=viewpict.getDrawingCache();

并保存:

 OutputStream fOut = null;
    Uri outputFileUri;
     try {
    File root = new File(Environment.getExternalStorageDirectory()
      + File.separator + "folder_name" + File.separator);
    root.mkdirs();
   File sdImageMainDirectory = new File(root, "myPicName.jpg");
    outputFileUri = Uri.fromFile(sdImageMainDirectory);
    fOut = new FileOutputStream(sdImageMainDirectory);
   } catch (Exception e) {
    Toast.makeText(this, "Error occured. Please try again later.",
      Toast.LENGTH_SHORT).show();
   }

   try {
    bm.compress(Bitmap.CompressFormat.PNG, 100, fOut);
    fOut.flush();
    fOut.close();
   } catch (Exception e) {
   }

AndroidManifest 中的权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

关于java - 将ImageView拍摄的照片存储到手机存储中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29875219/

相关文章:

java - 有没有一种方法可以使用仅具有值的方法 insert 来插入树

java - jaxrs 找不到 joda.money 类型的自定义(反)序列化器

c# - 不幸的是,在使用模拟器运行时已停止应用程序 android

android - 在android中自定义操作栏

java - 在 Cloud SDK 中使用 XSTokenRequest 获取 token

java - Android - 使用另一个 Java 类对 TextView 进行排序

Android Facebook SDK - session.isOpened() 总是返回 false

Android:Volley HTTP 请求自定义 header

python - 基维,ModuleNotFoundError : No module named '_ctypes' when building an android app

java - UnsatisfiedServletRequestParameterException spring Controller 不映射请求,错误400