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 best solutions below
Related Questions in ANDROID
- Creating global Class holder
- Flutter + Dart: Editing name of a tab shows up a black screen
- android-pdf-viewer Received status code 401 from server: Unauthorized
- Sdk 34 WRITE_EXTERNAL_STORAGE not working
- ussd reader in Recket Native module
- Incorrect display of LinearGradientBrush in IOS
- The Binary Version Of its metadata is 1.8.0, expected Version is 1.6.0 build error
- I can't make TextInput to auto expand properly in Android
- Creating multiple instances of a class with different initializing values in Flutter
- How to create a lottie animation
- making android analyze with coverity sast tool
- Flutter plugin development android src not opening after opening example
- I initialize my ViewModel in the Activity with several fragments as tabs, but the fragments(tabs) return null for the updated livedata
- Node.js Server + Socket.IO + Android Mobile Applicatoin XHR Polling Error...?
- How I can use the shared preferences class?
Related Questions in ANDROID-RECYCLERVIEW
- RecyclerView in Fragment Resets when ViewModel Updated without Recreating Recyclerview or calling NotiftDataSetChanged
- In Android Studio, how make an item in the recyclerview open another activity when clicked?
- Error NullPointerExeception: When trying to add Value in ArrayList & adapter.notifydatachanged
- RecyclerView with dynamic content after a complex static layout
- Recycler View is Not Showing Even After Adding Data in Array List & adapter.notifyDataSetChanged()
- Recyclerview columns same width (not fixed) but take as much space as needed
- Can't scroll when using SpannedGridLayoutManager in Recyclerview in Android kotlin
- DemoAPI (JSONs) to recyclerView using retrofit
- How to create design Android using recyclerView with dynamic item
- When I switch an Android Switch on or off, why do Switches in adjacent rows within a Recycler View also switch?
- Android recyclerview - cant able to navigate items using accessibility focus
- Scroll Dynamically added recycler view to position 0
- RecyclerView scrolls to top
- RecyclerView inside bottom sheet is not displayed
- Why isn't My RecyclerView Updating when Data is being saved to My Room Database?
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
- Xamarin.Android hyperlink in middle of text not working
- Android : spannablestring shows HTML tags issue
- How to make an Image Getter in a RecyclerView using fromHTML more efficient?
- Android TextView fromHtml() how to support unsupported css style, text size?
- How can I increase the font size in Html.fromHtml?
- Android, format text from Json to HTML removes new lines and white spaces
- Android HtmlCompat.toHtml(Spanned) returns improperly nested HTML tags
- TextView HTML with anchor link
- How to add font style to textview android kotlin
- Does the Html.fromHtml in android only works in displayed texts?
- jsPDF - fromHTML does not write at the correct page
- ImageSpan adds space above image in some API level
- Issue with fromhtml method in jspdf lib
- android.text.html (fromHtml): render inline CSS colors
- Html.fromHtml not working with bold text in body while share intent in email
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)
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?
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.)