BitmapFactory.decodeResource возвращает 0 для outHeight & outWidth с inJustDecodeBounds = true


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

Вот код, который у меня есть для чтения растрового изображения:

BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    image = BitmapFactory.decodeResource(context.getResources(), R.id.myimage, options);
    imageHeight = options.outHeight;
    imageWidth = options.outWidth;
    imageType = options.outMimeType;

Мои результаты для imageHeight, imageWidth оба кажутся равными 0, а imageType равен нулю.

Изображение имеет растровый формат.

Мой метод onCreate-это

ImageView imgView = (ImageView) findViewById(R.id.myimage);
    Drawable draw = getResources().getDrawable(R.drawable.bmp_login_screen);
    imgView.setImageDrawable(draw);



    TextView textView = (TextView) findViewById(R.id.text_view);

    ReadBitmapDimen dimensions = new ReadBitmapDimen(getApplicationContext());
    textView.setText(" Dimensions for userlogin image: outHeight = " + String.valueOf(dimensions.imageHeight));

Спасибо!

2 3

2 ответа:

Измените эту строку - image = BitmapFactory.decodeResource(context.getResources(), R.id.myimage, options);

К

image = BitmapFactory.decodeResource(context.getResources(), R.drawable.bmp_login_screen, options);

R.id.myimage не является допустимым извлекаемым ресурсом. Должно быть R.drawable.something.