Java android, получение изображения из галереи и отображение его на экране (ошибка) - PullRequest
2 голосов
/ 01 февраля 2012

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

Я получил это далеко сейчас:

public void FotoKiezen(View v) {
    Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
    photoPickerIntent.setType("image/*");
    startActivityForResult(photoPickerIntent, 1);
}

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
    case 1:
     {
      if (resultCode == RESULT_OK)
      {
        Uri photoUri = data.getData();
        if (photoUri != null)
        {
        try {
              String[] filePathColumn = {MediaStore.Images.Media.DATA};
              Cursor cursor = getContentResolver().query(photoUri, filePathColumn, null, null, null); 
         cursor.moveToFirst();
     int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
     String filePath = cursor.getString(columnIndex);
     cursor.close();
     Bitmap bMap = BitmapFactory.decodeFile(filePath);
     ImageView.setImageBitmap(bMap);


     }catch(Exception e)
      {}
      }
    }// resultCode
    }// case 1
    }// switch, request code
}// public void onActivityResult

Над ним тоже есть какой-то другой код, но здесь где-то проблема.

Я получаю сообщение об ошибке ImageView.setImageBitmap(bMap); Ошибка:

Невозможно сделать статическую ссылку на нестатический метод setImageBitmap (Bitmap) из типа ImageView

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

Я новичок в программировании на Java для Android, раньше программировал на C ++. Так что также было бы неплохо объяснить ошибку: D

Ответы [ 2 ]

2 голосов
/ 01 февраля 2012

Я думаю, что эта строка вызывает ошибку ..

ImageView.setImageBitmap(bMap);

Здесь ImageView - это класс, вместо этого вы должны создать его объект, а затем использовать setImageBitmap.,

ImageVIew mImageView = new ImageView(this)
mImageView.setImageBitmap(bMap);

Или, если вы уже определили объект ImageView в своей деятельности, просто используйте это ..

1 голос
/ 01 февраля 2012

Вы должны создать объект класса ImageView?Например:

ImageView img = new ImageView(this);
img.setImageBitmap(bMap);

или

ImageView img = (ImageView)findViewById(R.id.<your image view id>);
img.setImageBitmap(bMap);
...