I'm using fromHTML to load HTML text into a TextView inside a RecyclerView element. This does work, however it is incredibly slow as the images are being loaded from a URL and when the adapter is set or updated the app freezes up or crashes and I get logs saying too much work is being done on the main thread. Is there any way to make the ImageGetter in HTML.fromHTML that I'm using more efficient and make the adapter run on a seperate thread when updating so it doesn't freeze up the app? I've tried looking at faster ways to get a Drawable but the main image loading libraries don't seem to have a way to return a Drawable object.
How to make an Image Getter in a RecyclerView using fromHTML more efficient?
248 views Asked by Tamzid At
1
There are 1 answers
Related Questions in ANDROID
- Delay in loading Html Page(WebView) from assets folder in real android device
- MPAndroidChart method setWordWrapEnabled() not found
- Designing a 'new post' android activity
- Android :EditText inside ListView always update first item in the listview
- Android: Transferring Data via ContentIntent
- Wrong xml being inflated android
- AsyncTask Class
- Unable to receive extras in Android Intent
- Website zoomed out on Android default browser
- Square FloatingActionButton with Android Design Library
- Google Maps API Re-size
- Push toolbar content below statusbar
- Android FragmentPagerAdapter Circular listview
- Layout not shifting up when keyboard is open
- auDIO_OUTPUT_FLAG_FAST denied by client can't connect to localhost
Related Questions in ANDROID-RECYCLERVIEW
- Disable Swipe for position in RecyclerView using ItemTouchHelper.SimpleCallback
- Get height for RecyclerView child views at runtime
- RecycleView Adapter notifyItemRangeInserted reload all rows after start position
- Clicking CardView to load a fragment
- Tool_Bar with android CardView and Transparent status bar
- Sync scrolling of multiple RecyclerViews
- RecyclerView gets pushed down when returned to activity
- Background color or Images shuffling on scrolling in recyclerview?
- RecyclerView duplicate issue in Android
- RecyclerView wrap_content with GridLayoutManager
- RecyclerView onclick listener fires before click animation completes
- Toolbar not showing with swipe to refresh
- Infinite scrolling using custom animations in Recycler View not working Android
- How to make RecyclerView header not sticky?
- Android - RecyclerView - How do I temporarily prevent scrolling?
Related Questions in ANDROID-THREAD
- Android Studio Progress Bar not updating correctly
- Call a synchronized method with a new thread in a synchronized method
- Android/Java: How to ask location in background service when the app is not in foreground? onLocationResult is not fired in the FusedLocationClient
- pytube takes too long to stream a video in Android
- Android synchronized block causing ANR issue
- How to run multiple UI threads in one Activity without ANR?
- How to stop long running disk operation in Thread or Coroutine in Android?
- App randomly crashes when starting background thread of a fragment
- Does handler belong to thread in which it was created?
- How to make an Image Getter in a RecyclerView using fromHTML more efficient?
- alert dailog is not visible when user came to application from backgroud
- Sync/Work option for foreground and background using WorkManger
- How and where is better to execute a periodic code on Android
- Kotlin - delay between UI updates
- Multi threading concept wait() and notify() inside AsyncTask ProgressBar update
Related Questions in FROMHTML
- jspdf fromHTML table style
- NoClassDefFoundError Html.fromHtml android
- Android Textview HTML not displaying colors?
- Android HtmlCompat.toHtml(Spanned) returns improperly nested HTML tags
- Picaso with ImageGetter in TextView from JSON
- TextView - how to display simple URLs and hyper links
- Text is not in center in my view using fromHtml()
- ANDROID--How to take one part of html tag with fromHtml?
- ImageSpan adds space above image in some API level
- how to show a String variable with color in alertDialog.setMessage() in android
- Android TextView fromHtml() how to support unsupported css style, text size?
- jsPDF - fromHTML and custom fonts
- Jspdf - fromHtml() - Pdf with single page
- Android 6 strips link from text with Html.fromHtml() method
- android.text.html (fromHtml): render inline CSS colors
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
It looks like the line
Boolean result = fiu.execute().get();is blocking the UI thread and is defeating the purpose of the AsyncTask. You should consider using a callback inonPostExecute()to set the image.Unfortunately, there is not a lot of information online about how to implement Html.ImageGetter. I answered a question here that addresses changing the placeholder image while the actual image loads on a simulated background thread. The solution presented in the question also works but requires manipulating and rescanning the HTML text.
I think that you could adapt something from that post to solve your problem.
Update: I think a better solution would be to use a library such as Glide to load the drawable. If the library doesn't handle your use case natively, take a look at how others have handled the limitation. See here for one approach. I think that this Stack Overflow answer may be useful to you. In
onResourceReady()you can set the text with the loaded image.Second update: I would look into Glide more. You can create a custom loader called a "ModelLoader" that can fetch your stream drawables. See here regarding how to write a ModelLoader and here for an example. (Don't know if that example works or not, but it looks OK.)