2014-11-17 2 views
0

Итак, у меня есть этот класс «MakePhoto». И это может сделать и сохранить фотографию. Теперь я хочу сохранить изображения в массиве. Поэтому, когда вы делаете снимок, он должен хранить его в массиве [0], а второе изображение должно храниться в массиве [1] и т. Д. Таким образом, массив [0] должен ссылаться на первое сделанное изображение. Это возможно?Можно ли создать массив, ссылающийся на картинку

PhotoMaker.java класс:

package com.example.photoviewer; 

import java.io.FileNotFoundException; 

import com.example.keyfinder.R; 

import android.app.Activity; 
import android.content.ContentValues; 
import android.content.Intent; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.os.Bundle; 
import android.provider.MediaStore; 
import android.util.Log; 
import android.net.Uri; 
import android.view.View; 
import android.view.Window; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.ImageView; 


public class FotoMaker extends Activity 
    { 
    ImageView iv; 
    Uri uriOfPicture; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) 
     { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.add_pic); 

     iv = (ImageView) findViewById(R.id.imageView); 
     Button btn = (Button) findViewById(R.id.button1); 
     btn.setOnClickListener(new OnClickListener() 
     { 


      @Override 
      public void onClick (View v){ 
       takeImageFromCamera(); 

      } 
     }); 
     } 
     @Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent data) 
     { 
      if(requestCode == 0) 
      { 
       Bitmap image=createBitmapFromURI(uriOfPicture); 
       iv.setImageBitmap(image); 
      } 
      Intent intent = new Intent(this,ShowPhoto.class); 
      intent.putExtra("uri", uriOfPicture.toString()); 
      startActivity(intent); 
     } 
@Override 
    protected void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     if (uriOfPicture != null) { 
      outState.putString("cameraImageUri", uriOfPicture.toString()); 
     } 
    } 

    @Override 
    protected void onRestoreInstanceState(Bundle savedInstanceState) { 
     super.onRestoreInstanceState(savedInstanceState); 
     if (savedInstanceState.containsKey("cameraImageUri")) { 
      uriOfPicture = Uri.parse(savedInstanceState.getString("cameraImageUri")); 
     } 
    } 
/*********************************** method to take URI of the picture *******************/ 
public void takeImageFromCamera(){ 
     String fileName = "new-photo-name.jpg"; 
     ContentValues values = new ContentValues(); 
     values.put(MediaStore.Images.Media.TITLE, fileName); 
     values.put(MediaStore.Images.Media.DESCRIPTION, 
       "Image captured by camera"); 

     uriOfPicture = getContentResolver() 
       .insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
         values); 
     Log.i("uri",uriOfPicture.toString()); 
     Intent intent = new Intent(
       MediaStore.ACTION_IMAGE_CAPTURE); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, uriOfPicture); 
     intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); 
     startActivityForResult(intent, 
       0); 


    } 
public Bitmap createBitmapFromURI(Uri uriOfPicture) { 

    Bitmap bitmap = null; 
    try { 
     bitmap = BitmapFactory.decodeStream(getApplicationContext() 
       .getContentResolver().openInputStream(uriOfPicture)); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 
    if (bitmap != null) 
     return Bitmap.createScaledBitmap(bitmap, 100, 100, true); 
    else { 
     return null; 
    } 
} 
} 
+0

Возможно, вы должны сделать это в другом месте. Вы можете просто сделать битмап [] нужного размера и сохранить свои изображения там –

ответ

1

Просто сделайте массив Bitmap как

Bitmap []arr = new Bitmap[size]; 

или вы можете использовать контейнерный класс как ArrayList, если вы не знаете размер

ArrayList<Bitmap> list = new ArrayList<Bitmap>(); 
list.add(reference_to_the_bitmap); 
+0

Спасибо за команду, я еще не получил часть [size], не могли бы вы мне это немного объяснить? – goedkoop

+0

Размер - это максимальный размер массива, который вы хотите. – maximus

Смежные вопросы