Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以制作一个引用图片的数组_Java_Android_Arrays_Eclipse - Fatal编程技术网

Java 是否可以制作一个引用图片的数组

Java 是否可以制作一个引用图片的数组,java,android,arrays,eclipse,Java,Android,Arrays,Eclipse,所以我有一门课“MakePhoto”。它可以制作并保存一张照片。现在我想将图片保存在一个数组中。因此,制作图片时,它应将其存储在数组[0]中,第二张图片应存储在数组[1]中,以此类推。因此,数组[0]应引用制作的第一张图片。这有可能吗 PhotoMaker.java类: package com.example.photoviewer; import java.io.FileNotFoundException; import com.example.keyfinder.R; import a

所以我有一门课“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;
    }
}
}

只需制作一个位图数组,就像

Bitmap []arr = new Bitmap[size]; 
或者,如果不知道大小,也可以使用类似arraylist的容器类

ArrayList<Bitmap> list = new ArrayList<Bitmap>();
list.add(reference_to_the_bitmap);
ArrayList list=new ArrayList();
添加(参考\u到\u位图);

您可能应该在其他地方执行此操作。你可以制作一个你想要大小的位图[],然后把你的图像存储在里面。谢谢你的命令,我还没有得到[size]部分,你能解释一下吗?size就是你想要的最大数组大小。