Methods Summary |
---|
public void | deliverResult(com.android.ex.photo.loaders.PhotoBitmapLoaderInterface.BitmapResult result)Called when there is new data to deliver to the client. The
super class will take care of delivering it; the implementation
here just adds a little more logic.
Bitmap bitmap = result != null ? result.bitmap : null;
if (isReset()) {
// An async query came in while the loader is stopped. We
// don't need the result.
if (bitmap != null) {
onReleaseResources(bitmap);
}
return;
}
Bitmap oldBitmap = mBitmap;
mBitmap = bitmap;
if (isStarted()) {
// If the Loader is currently started, we can immediately
// deliver its results.
super.deliverResult(result);
}
// At this point we can release the resources associated with
// 'oldBitmap' if needed; now that the new result is delivered we
// know that it is no longer in use.
if (oldBitmap != null && oldBitmap != bitmap && !oldBitmap.isRecycled()) {
onReleaseResources(oldBitmap);
}
|
public com.android.ex.photo.loaders.PhotoBitmapLoaderInterface.BitmapResult | loadInBackground()
BitmapResult result = new BitmapResult();
Context context = getContext();
if (context != null && mPhotoUri != null) {
final ContentResolver resolver = context.getContentResolver();
try {
result = ImageUtils.createLocalBitmap(resolver, Uri.parse(mPhotoUri),
PhotoViewController.sMaxPhotoSize);
if (result.bitmap != null) {
result.bitmap.setDensity(DisplayMetrics.DENSITY_MEDIUM);
}
} catch (UnsupportedOperationException ex) {
// We got image bytes, but unable to decode to a Bitmap
result.status = BitmapResult.STATUS_EXCEPTION;
}
}
return result;
|
public void | onCanceled(com.android.ex.photo.loaders.PhotoBitmapLoaderInterface.BitmapResult result)Handles a request to cancel a load.
super.onCanceled(result);
// At this point we can release the resources associated with 'bitmap'
// if needed.
if (result != null) {
onReleaseResources(result.bitmap);
}
|
protected void | onReleaseResources(android.graphics.Bitmap bitmap)Helper function to take care of releasing resources associated
with an actively loaded data set.
if (bitmap != null && !bitmap.isRecycled()) {
bitmap.recycle();
}
|
protected void | onReset()Handles a request to completely reset the Loader.
super.onReset();
// Ensure the loader is stopped
onStopLoading();
// At this point we can release the resources associated with 'bitmap'
// if needed.
if (mBitmap != null) {
onReleaseResources(mBitmap);
mBitmap = null;
}
|
protected void | onStartLoading()Handles a request to start the Loader.
if (mBitmap != null) {
// If we currently have a result available, deliver it
// immediately.
BitmapResult result = new BitmapResult();
result.status = BitmapResult.STATUS_SUCCESS;
result.bitmap = mBitmap;
deliverResult(result);
}
if (takeContentChanged() || mBitmap == null) {
// If the data has changed since the last time it was loaded
// or is not currently available, start a load.
forceLoad();
}
|
protected void | onStopLoading()Handles a request to stop the Loader.
// Attempt to cancel the current load task if possible.
cancelLoad();
|
public void | setPhotoUri(java.lang.String photoUri)
mPhotoUri = photoUri;
|