Я использую ImageView
, чтобы сделать изображение 1,3 МБ в качестве фона для деятельности. Активность имеет еще меньшее изображение (логотип) и 3 кнопки. В этом деле нет ничего другого. Теперь это действие занимает до 9 секунд для отображения. До этого приложение показывает черный экран. Когда я удалил ImageView с изображением 1,3 МБ, активность загружается мгновенно. Так нормально ли для ImageView делать так долго, чтобы загрузить изображение? Как я могу уменьшить это время?Слишком длинное изображение для загрузки в макете?
ответ
У вас есть несколько вариантов, но сначала вы должны спросить , почему я загружаю такое большое растровое изображение?
сделать файл меньше
Как @laalto говорит, регулировать размеры изображения и сделать его меньше. Вероятно, самый быстрый и простой вариант. Поскольку я не вижу изображение, я не могу сказать, будет ли это выглядеть иначе, чем у пользователя, если разрешение меньше.
Downsample Изображения
Есть много сообщений о субдискретизации больших изображений, чтобы избежать outofmemory
ошибок. Here - хороший пример из команды AndroidQuery, у которой в собственном праве есть полезный library, который включает в себя такую функциональность. Это также включено в сообщение.
Вы можете использовать свою библиотеку, использовать их сообщение (или подобное) для написания кода, или вы можете использовать отличную библиотеку Picasso с площади, хотя это может быть излишним.
Если имеется повторяющаяся фон ...
Вы не предоставили изображение, но если это повторяется, вы можете создать плитку вместо, а затем обеспечить это в качестве ресурса.
Так для примера, вы можете создать новый файл XML с именем background_repeat.xml, который содержит
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/tile"
android:tileMode="repeat"
android:dither="true" />
tile
где является гораздо гораздо меньше, изображение, которое вы хотите повторить.
OK Я обрезал изображение, и его размер теперь составляет 360 КБ (разрешение 1501 * 2200), но все же его длина слишком длинная (4 секунды). Любые другие предложения, которые у вас есть? Благодарю. –
Попробуйте ускорить использование AQuery, просто опустите банку и используйте сообщение, с которым я связан. Уменьшите размер изображения.Если он работает, решите, хотите ли вы написать свой собственный код или продолжать использовать AQuery или Picasso и т. Д. –
Да, это нормально. Изображение необходимо декодировать и масштабировать. Требуется время обработки и память. Обработка памяти запускает сборку мусора время от времени, замедляя процесс еще больше. Используйте профилировщик, чтобы узнать, где именно потрачено время.
Уменьшите размеры изображения, чтобы ускорить декодирование и сократить объем памяти.
я действительно не хочу потерять разрешение изображения, если это возможно. Существуют ли какие-либо внешние библиотеки, которые позволяют быстрее загружать изображение? –
Вы можете использовать андроид: фон, чтобы установить фон фона из ресурса. А также вы можете сделать это на корневой элемент вашего XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:id="@+id/fragment_layout"
android:background="@drawable/navigation_bg"/>
- 1. Выполнение запроса слишком длинное для загрузки
- 2. Изображение на клике слишком длинное
- 3. Определите, слишком ли длинное сообщение для вставки в изображение.
- 4. Слово слишком длинное для переключателя
- 5. ValueError: Linkname слишком длинное
- 6. Соединение JDBC слишком длинное
- 7. Слишком длинное выполнение трансформации
- 8. Почему изображение исчезает на макете?
- 9. Время исполнения для функции Winsock слишком длинное
- 10. Индексное имя слишком длинное для миграции отката
- 11. Когда имя функции слишком длинное?
- 12. Имя виртуального файла слишком длинное
- 13. Слишком длинное имя файла Octave
- 14. Извлечение изображения: uri слишком длинное
- 15. Textview слишком мал в макете
- 16. Короткая строка слишком длинное исключение
- 17. Слишком длинное название индекса миграции
- 18. C# Слишком длинное имя файла Windows RT
- 19. Слишком много мнений в макете
- 20. Прокрутите длинное изображение
- 21. Xam.Media.Plugin Растровое изображение слишком большое для загрузки в текстуру
- 22. com.jcraft.jsch.JSchException: 4: полученное сообщение слишком длинное: 1416128878
- 23. Преобразование jpegs в gifs слишком длинное
- 24. Изображение в макете android
- 25. Изображение слайдера в макете
- 26. Подпроцесс в Python: слишком длинное имя файла
- 27. ГИТ-SVN перебазироваться «слишком длинное имя файла»
- 28. Время загрузки раскадровщика очень длинное
- 29. изображение слишком большое для отображения
- 30. Время конвертации видео FFMPEG слишком длинное
использовать изображение нижнего размера как можно больше –