mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-06 03:50:19 +02:00
background cover loading
This commit is contained in:
parent
15959ba7f4
commit
9388f82ed0
1 changed files with 20 additions and 2 deletions
|
@ -30,9 +30,11 @@ import android.widget.*;
|
|||
|
||||
import org.geometerplus.zlibrary.core.resources.ZLResource;
|
||||
import org.geometerplus.zlibrary.core.image.ZLImage;
|
||||
import org.geometerplus.zlibrary.core.image.ZLLoadableImage;
|
||||
|
||||
import org.geometerplus.zlibrary.ui.android.image.ZLAndroidImageData;
|
||||
import org.geometerplus.zlibrary.ui.android.image.ZLAndroidImageManager;
|
||||
import org.geometerplus.zlibrary.ui.android.image.ZLAndroidImageLoader;
|
||||
|
||||
import org.geometerplus.fbreader.tree.FBTree;
|
||||
import org.geometerplus.fbreader.library.*;
|
||||
|
@ -82,6 +84,12 @@ abstract class LibraryBaseActivity extends ListActivity {
|
|||
private int myCoverWidth = -1;
|
||||
private int myCoverHeight = -1;
|
||||
|
||||
private final Runnable myInvalidateViewsRunnable = new Runnable() {
|
||||
public void run() {
|
||||
getListView().invalidateViews();
|
||||
}
|
||||
};
|
||||
|
||||
public View getView(int position, View convertView, final ViewGroup parent) {
|
||||
final FBTree tree = getItem(position);
|
||||
final View view = (convertView != null) ? convertView :
|
||||
|
@ -109,8 +117,18 @@ abstract class LibraryBaseActivity extends ListActivity {
|
|||
Bitmap coverBitmap = null;
|
||||
ZLImage cover = tree.getCover();
|
||||
if (cover != null) {
|
||||
final ZLAndroidImageData data =
|
||||
((ZLAndroidImageManager)ZLAndroidImageManager.Instance()).getImageData(cover);
|
||||
ZLAndroidImageData data = null;
|
||||
final ZLAndroidImageManager mgr = (ZLAndroidImageManager)ZLAndroidImageManager.Instance();
|
||||
if (cover instanceof ZLLoadableImage) {
|
||||
final ZLLoadableImage img = (ZLLoadableImage)cover;
|
||||
if (img.isSynchronized()) {
|
||||
data = mgr.getImageData(img);
|
||||
} else {
|
||||
ZLAndroidImageLoader.Instance().startImageLoading(img, myInvalidateViewsRunnable);
|
||||
}
|
||||
} else {
|
||||
data = mgr.getImageData(cover);
|
||||
}
|
||||
if (data != null) {
|
||||
coverBitmap = data.getBitmap(2 * myCoverWidth, 2 * myCoverHeight);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue