2016-03-28 2 views
0

У меня есть Bitmap (1538 x 2000) и задайте его как src из ImageView, но когда я запускаю приложение, ничего не отображается (но цвет фона операции), я читал информацию о границах размеров растровых изображений, но если проблема - это ограничение, почему я могу просматривать это растровое изображение на галерее на том же устройстве?ImageView ничего не показывает

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<ImageView 
    android:id="@+id/iv" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:scaleType="fitCenter" 
    android:adjustViewBounds="true" 
    android:src="@drawable/pic3"/> 

</FrameLayout> 

Любая помощь будет оценена

+0

можете ли вы разместить свой xml-макет? – Nanoc

+0

попробуйте использовать [Picasso] (http://square.github.io/picasso/) для больших изображений. – khyper

+0

Я думаю, что вы получаете исключение BitmapOutofMemory, уменьшаете растровое изображение и используете его в изображении. –

ответ

0

Ну, я думаю, что проблема мое злоупотребление drawable папок без учета андроида поведения, я положил изображение в drawable папки, которую андроид предполагает это собственно для mdpi устройств.

Мой LogCat указывал на это раньше:

OpenGLRenderer: Bitmap too large to be uploaded into a texture (2307x3000, max=2048x2048) 

Как вы можете увидеть оригинальный размер был (1538x2000) и LogCat сообщает об этом (2307x3000), что означает андроид весы (1.5x) мое изображение, чтобы соответствовать моим hdpi, и когда я загружаю его с помощью активов, как сказал Прахлар, скарлетт speedstr сказал, он работал, как я ожидал без вмешательства андроида.

Также я попробовал больше и поместил изображение в drawable-hdpi, и он отлично работал без какого-либо масштаба.

Спасибо за полезные ответы и комментарии.

0

Существует предел для размера изображения в андроида. Обычно это 2048 (макс. Размер), но вы можете получить конкретное значение этого устройства следующими способами: Canvas.getMaximumBitmapWidth(), Canvas.getMaximumBitmapHeight()

Ваш размер изображения выглядит нормально, но, возможно, он находится в неправильной папке с выделением (и из-за этого андроид читает ее с более высоким разрешающая способность). Вы можете поместить изображение в папку drawable-nodpi (подробнее: http://developer.android.com/guide/practices/screens_support.html), чтобы быть уверенным, что он не будет обновлен/изменен, но я лично думаю, что было бы лучше использовать более низкие разрешения, возможно, в нескольких папках (или векторных активах, если изображение доступно в SVG)

2

Вы можете попробовать это.

поместить изображение в папке активов

src->main->assets 

Если папка не существует, создайте его.

После размещения изображения, используйте этот код в java (установка изображения программно).

Drawable d = null; 
    try { 
     d = Drawable.createFromStream(getAssets().open("YOUR_IMAGE_NAME"), null); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    imageView.setImageDrawable(d); 

Убедитесь, что вы добавили расширение также при использовании имени изображения. например: background.jpg или backgroung.png.

это должно работать.

+0

tnx @Shree, Это сработало, Но мне интересно, почему это было большим моим растровым рисунком, и теперь размер точно такой, как оригинальная версия - –

+0

@Farshad честно, я тоже не совсем понимаю об этом, но я столкнулся с этой проблемой с большими изображений. В устройствах с высоким уровнем производительности и процессором он работал нормально, но на других устройствах он был либо пустым, либо приложение рушилось. Когда я программно работал, это сработало. Я попытался прочитать об этом, не очень понял ... но он должен что-то сделать с распределением кэш-памяти. –

+0

Изображение находилось в папке с возможностью рисования, учитывая, что сообщение logcat android масштабирует его в 1,5 раза, что я не делаю знаю, почему! Но когда я загружаю его как актив, размер результата - это то, что я ожидал. –

Смежные вопросы