Android — ускорение масштабирования в ImageView

В настоящее время я имею дело с действительно большими изображениями (7-10 МБ), которые не могут быть изменены или сжаты по нескольким причинам.

Теперь идея состоит в том, чтобы показать их в пользовательском ImageView, который позволяет пользователю выполнять двойное нажатие, масштабирование и т. Д.

Я использовал эту библиотеку для работы: https://github.com/MikeOrtiz/TouchImageView

Я пробовал и другие библиотеки, но все остальные библиотеки работают очень медленно. Может кто-нибудь дать мне несколько советов / предложений, чтобы сделать это быстрее (даже написать мой собственный C ++ implantation)?

Я немного растерялся со всеми этими «матрицами», «полетами», «масштабированием», и я понятия не имею, что мне следует трогать, чтобы сделать это быстрее. Если вы знаете и другие более быстрые библиотеки (или как использовать пользовательскую реализацию Android, которая работает очень быстро), это было бы здорово.

3

Решение

Вы пытались использовать функцию DeepZoom библиотеки Ion?

https://github.com/koush/ion

https://www.youtube.com/watch?v=yIMltNEAKZY

Если вы не хотите использовать opengl или вышеуказанная библиотека не работает, вы также можете попробовать поиграть с http://developer.android.com/reference/android/graphics/BitmapRegionDecoder.html учебный класс. То есть, отслеживать «где» пользователь (область просмотра & уровень масштабирования) и декодировать эту область вне основного потока, выталкивая ее на холст каждый раз, когда пользователь изменяет ввод.

3

Другие решения

Попробуйте библиотеку openCV или используйте ее в matlab, а затем перенесите код в c / c ++ для улучшения изображения

5

Вы можете попробовать вручную реализовать «mipmaps» — разные размеры одного и того же изображения, а затем просто использовать изображение наиболее подходящего размера для отображения …. таким образом, при уменьшении вы будете манипулировать сравнительно небольшим изображением (но все равно получить полную детализацию большого при увеличении).

2

Попробуйте библиотеку под названием PhotoView. При использовании вместе с Picasso, я смог достичь функциональности Onlick, позволяющей пользователю щелкнуть на меньшем изображении и получить на нем полное изображение в пользовательском представлении с функцией масштабирования. Это действительно легко реализовать

2

Одним из способов решения этой проблемы является использование WebView, который поддерживает панорамирование, масштабирование и т. Д. Я думаю, что качество изображения может быть проблемой.

андроид-местный образ-в-WebView

Android-надстройку изображение-к-WebView-с-а-Drawable

и т.п.
Вы также можете генерировать и загружать HTML динамически

2

В TouchImageView.java классе DoubleTapZoom установите меньшее или большее значение для ZOOM_TIME

private class DoubleTapZoom implements Runnable {
......
private static final float ZOOM_TIME = 500 //(lower - faster)
......
0
По вопросам рекламы [email protected]