使用在一个类中的私有方法中创建的位图,并在另一个类中使用位图

时间:2016-07-28 19:20:26

标签: java android bitmap

我正在尝试在一个java类中显示在方法中创建的位图图像,并在另一个java类的ImageView中显示它。这是我到目前为止的代码,但我得到一个空的ImageView。谁能告诉我为什么?

这是我的PictureLocation.java文件中的代码(这是我要在另一个活动中显示的位图图像的位置)

// THIS IS WHERE THE BITMAP FILE IS GENERATED WHEN TAKING A PHOTO
private void onCaptureImageResult(Intent data) {
    Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, bytes);

    // HERE I AM SETTING THE THUMBNAIL SO THAT I CAN GET IT LATER
    setBitmap(thumbnail);

    File destination = new File(Environment.getExternalStorageDirectory(),
            System.currentTimeMillis() + ".jpg");

    FileOutputStream fo;
    try {
        destination.createNewFile();
        fo = new FileOutputStream(destination);
        fo.write(bytes.toByteArray());
        fo.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    // THIS IS THE ACTIVITY I NEED TO SHOW THE BITMAP IN
    Intent intent = new Intent(this, ImageModification.class);
    startActivity(intent);
}

public void setBitmap(Bitmap image){
    this.myImage = image;
}

public Bitmap getBitmap(){
    return this.myImage;
}

这是我的ImageModification.java文件的代码。这是我试图从PictureLocation.java文件中获取创建的位图文件并将其显示在ImageView中的位置。

public class ImageModification extends AppCompatActivity {

private ImageView sourceImage;

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

    // ONCE THIS ACTIVITY IS STARTED I TRY TO DISPLAY THE BITMAP 
    // IN AN  IMAGEVIEW
    PictureLocation pictureLocation = new PictureLocation();
    sourceImage = (ImageView) findViewById(R.id.sourceImage);
    sourceImage.setImageBitmap(pictureLocation.getBitmap());
}

任何帮助都会很棒。谢谢!

0 个答案:

没有答案