2015-10-26 100 views
0

我正在製作一個android應用程序,當點擊一個按鈕時它會打開相機,但拍攝照片後圖像不會保存。我希望能夠將它保存到我的畫廊相冊中。如何將圖像保存到圖庫Android ap

public void onClickbtnCamera(View v){ 

    Intent intent1 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    Uri uriSavedImage=Uri.fromFile(new File("/storage/emulated/0/DCIM/Camera/")); 
    intent1.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); 
    startActivityForResult(intent1,3); 

} 
+0

您可能要檢查: http://stackoverflow.com/a/8722494/3390783 –

回答

0

您正在傳入目錄EXTRA_OUTPUTEXTRA_OUTPUT需要指向一個文件:

package com.commonsware.android.camcon; 

import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.os.Environment; 
import android.provider.MediaStore; 
import java.io.File; 

public class CameraContentDemoActivity extends Activity { 
    private static final int CONTENT_REQUEST=1337; 
    private File output=null; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    Intent i=new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    File dir= 
     Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM); 

    output=new File(dir, "CameraContentDemo.jpeg"); 
    i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(output)); 

    startActivityForResult(i, CONTENT_REQUEST); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, 
            Intent data) { 
    if (requestCode == CONTENT_REQUEST) { 
     if (resultCode == RESULT_OK) { 
     Intent i=new Intent(Intent.ACTION_VIEW); 

     i.setDataAndType(Uri.fromFile(output), "image/jpeg"); 
     startActivity(i); 
     finish(); 
     } 
    } 
    } 
} 

(從this sample project

+0

它讓我拍照但由於某些原因,它仍然沒有將其保存在Gallery文件夾中 –

+0

@CraigGallagher:沒有「Gallery文件夾」。如果你的意思是你的設備上的一些圖庫類應用程序沒有顯示圖像,那是因爲相機應用程序沒有要求'MediaStore'索引該文件。作爲'onActivityResult()'的一部分,使用'MediaScannerConnection'及其'scanFile()'方法自己做。 – CommonsWare