summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-10-17 17:52:00 +0400
committerAndrew Dolgov <[email protected]>2012-10-17 17:52:00 +0400
commit89b431c9d142a0a1ce56f9475a15ea9baad06bbc (patch)
treeb2f43187bbbd17a440b72d595f74c9105fb24a20 /src
parent0e0b75aab0cc4c799bc9a5ff900e3bd84ad4a275 (diff)
async comic image loading
Diffstat (limited to 'src')
-rw-r--r--src/org/fox/ttcomics/ComicFragment.java21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/org/fox/ttcomics/ComicFragment.java b/src/org/fox/ttcomics/ComicFragment.java
index eb40627..38097c8 100644
--- a/src/org/fox/ttcomics/ComicFragment.java
+++ b/src/org/fox/ttcomics/ComicFragment.java
@@ -9,6 +9,7 @@ import android.app.Activity;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
+import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
@@ -69,7 +70,7 @@ public class ComicFragment extends Fragment {
View view = inflater.inflate(R.layout.fragment_comic, container, false);
- ImageViewTouch image = (ImageViewTouch) view.findViewById(R.id.comic_image);
+ final ImageViewTouch image = (ImageViewTouch) view.findViewById(R.id.comic_image);
if (savedInstanceState != null) {
m_page = savedInstanceState.getInt("page");
@@ -83,7 +84,23 @@ public class ComicFragment extends Fragment {
}
image.setFitToScreen(true);
- image.setImageBitmap(loadImage(pager.getArchive(), m_page));
+
+ AsyncTask<ComicArchive, Void, Bitmap> loadTask = new AsyncTask<ComicArchive, Void, Bitmap>() {
+ @Override
+ protected Bitmap doInBackground(ComicArchive... params) {
+ return loadImage(params[0], m_page);
+ }
+
+ @Override
+ protected void onPostExecute(Bitmap result) {
+ if (getActivity() != null && isAdded() && result != null) {
+ image.setImageBitmap(result);
+ }
+ }
+ };
+
+ loadTask.execute(pager.getArchive());
+
image.setOnScaleChangedListener(new ImageViewTouch.OnScaleChangedListener() {
@Override
public void onScaleChanged(float scale, boolean widthFits) {