2012-04-01 5 views
1

Я пытался это сделать, но не добился успеха.Сохранить снятое изображение

У меня есть очень простое приложение, которое захватывает изображение и отображает это изображение для пользователя. Проблема в том, что он сохраняет изображение, поскольку дата была захвачена, но вместо этого я хочу дать изображению определенное имя.

Вот мой код:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    this.imageView = (ImageView)this.findViewById(R.id.imageView1); 
    Button photoButton = (Button) this.findViewById(R.id.button1); 
    photoButton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      //intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 

      startActivityForResult(intent, CAMERA_REQUEST); 
     } 
    }); 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    System.gc(); 
    if (requestCode == CAMERA_REQUEST) { 
     Bitmap photo = (Bitmap) data.getExtras().get("data"); 
     imageView.setImageBitmap(photo); 

    } 
} 

Я был бы очень признателен, если кто-то может показать мне, что мне нужно добавить и где установить имя изображения.

+1

Посмотрите на эту ссылку. это может быть полезно;) [Android ACTION_IMAGE_CAPTURE Намерение] [1] [1]: http://stackoverflow.com/questions/1910608/android-action-image-capture-intent – Imrane

+0

возможно, вы должны решить свою проблему или мне помочь – Ishu

ответ

4

Попробуйте приведенный ниже код является одним из решения вашей проблемы ::

static Uri capturedImageUri=null; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    this.imageView = (ImageView)this.findViewById(R.id.imageView1); 
    Button photoButton = (Button) this.findViewById(R.id.button1); 
    photoButton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
     Calendar cal = Calendar.getInstance(); 
File file = new File(Environment.getExternalStorageDirectory(), (cal.getTimeInMillis()+".jpg")); 
    if(!file.exists()){ 
    try { 
     file.createNewFile(); 
    } catch (IOException e) { 
    // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    }else{ 
     file.delete(); 
    try { 
     file.createNewFile(); 
    } catch (IOException e) { 
    // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    } 
    capturedImageUri = Uri.fromFile(file); 
    Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    i.putExtra(MediaStore.EXTRA_OUTPUT, capturedImageUri); 
    startActivityForResult(i, CAMERA_RESULT); 
     } 
    }); 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == CAMERA_REQUEST) { 
     //Bitmap photo = (Bitmap) data.getExtras().get("data"); 
     //imageView.setImageBitmap(photo); 
     try { 
    Bitmap bitmap = MediaStore.Images.Media.getBitmap(getApplicationContext().getContentResolver(), capturedImageUri); 
    imageView.setImageBitmap(bitmap); 
    } catch (FileNotFoundException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } 
    } 
} 
Смежные вопросы