Android ImageView.setImageURI масштабирует изображение - PullRequest
2 голосов
/ 17 февраля 2010

У меня есть представление, что я рисую в растровом изображении, сохраняю на диск и затем добавляю ImageView через setImageURI. Однако, когда изображение отображается в ImageView, оно не отображается в правильном размере. Это примерно на 1/3 меньше, чем должно быть. Я предполагаю, что это проблема плотности, но я не могу понять, что происходит не так (мой эмулятор WVGA). Идеи кому-нибудь?

Ответы [ 3 ]

4 голосов
/ 10 января 2013

Я тоже столкнулся с этим вопросом сегодня.Вместо этого я загрузил растровое изображение.

            Bitmap bit = BitmapFactory.decodeFile(image_path);
            mImageView.setImageBitmap(bit);

, которое отображается правильно.

3 голосов
/ 17 февраля 2010

Ты прав Это проблема плотности. Чтобы ваше изображение отображалось в правильных размерах независимо от плотности устройства, вам следует рассмотреть использование единиц измерения (независимый от плотности пиксель).

Кроме того, Android 1.5 не поддерживает плотность изображения - т.е. он не знает, как отличить растровые изображения MDP, HDI, LDI. Android 1.6 и выше делает. Вы можете использовать Bitmap.setDensity () или BitmapDrawable.setTargetDensity ()

Наконец - вы упоминаете, что это 1/3 небольшого, что должно быть, что является хорошим показателем того, что проблема связана с плотностью, поскольку плотность mdpi составляет 160 dpi, а hdpi составляет 240 dpi - 160/240 = 2/3, На 1/3 меньше вашего исходного изображения.

Надеюсь, это поможет!

0 голосов
/ 26 марта 2010

Попробуйте это:

ImageView photo = (ImageView)findViewById(R.id.photo);
photo.setScaleType(ImageView.ScaleType.CENTER);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...