Android Open Source - StreamHub-Android-Reviews-App Thumbnail View






From Project

Back to project page StreamHub-Android-Reviews-App.

License

The source code is released under:

MIT License

If you think the Android project StreamHub-Android-Reviews-App listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.filepicker.sdk;
// w w  w .j  a va2  s.  c o m
import java.util.concurrent.RejectedExecutionException;

import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.os.AsyncTask;


public class ThumbnailView extends android.widget.ImageView {
  private final String url;
  private final Inode inode;
  private ThumbnailLoaderTask task = null;
  private int width;

  class ThumbnailLoaderTask extends
      AsyncTask<Void, Integer, Bitmap> {

    @Override
    protected Bitmap doInBackground(Void... arg0) {
      if (inode.getThumbnailBitmap() != null)
        return inode.getThumbnailBitmap();
      Bitmap bitmap = FilePickerAPI.getInstance().getThumbnail(url);
      int MAXSIZE = width;
      if (bitmap != null && (bitmap.getHeight() > MAXSIZE || bitmap.getWidth() > MAXSIZE)) {
        //scale
        int h = bitmap.getHeight();
        int w = bitmap.getWidth();
        h = h * Math.min(w, MAXSIZE) / w;
        w = Math.min(w, MAXSIZE);
        w = w * Math.min(h, MAXSIZE) / h;
        h = Math.min(h, MAXSIZE);
        return Bitmap.createScaledBitmap(bitmap, w, h, true);
      } else {
        return bitmap;
      }
    }
    
    @Override
    protected void onPostExecute(Bitmap result) {
      if (result != null) {
        ThumbnailView.this.setImageBitmap(result);
        ThumbnailView.this.requestLayout();
        if (inode.getThumbnailBitmap() == null)
          inode.setThumbnailBitmap(result);
      }
      task = null;
    }

  }
  
  @SuppressLint("NewApi")
  public ThumbnailView(Context context, Inode inode) {
    super(context);
    setBackgroundColor(Color.GRAY);
    width = context.getResources().getDisplayMetrics().widthPixels / 3;
    setMinimumHeight(width);
    setMinimumWidth(width);
    setScaleType(ScaleType.CENTER_CROP);
    this.url = inode.getThumbnail();
    this.inode = inode;
    if (inode.getThumbnailBitmap() != null) {
      setImageBitmap(inode.getThumbnailBitmap());
      requestLayout();
    } else {
      int SDK_INT = android.os.Build.VERSION.SDK_INT;
      task = new ThumbnailLoaderTask();
      if (SDK_INT >= 12) {
        try {
          task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        } catch (RejectedExecutionException e) {
          //task.execute();
        }
      } else {
        task.execute();
      }
    }
  }
  
  @Override
  public void onDetachedFromWindow() {
    if (task != null)
      task.cancel(true);
  }

}




Java Source Code List

com.filepicker.sdk.AuthActivity.java
com.filepicker.sdk.AuthError.java
com.filepicker.sdk.BuildConfig.java
com.filepicker.sdk.BuildConfig.java
com.filepicker.sdk.CacheElement.java
com.filepicker.sdk.DataCache.java
com.filepicker.sdk.FPFile.java
com.filepicker.sdk.FPService.java
com.filepicker.sdk.FilePickerAPI.java
com.filepicker.sdk.FilePicker.java
com.filepicker.sdk.FixedSizeList.java
com.filepicker.sdk.Folder.java
com.filepicker.sdk.Inode.java
com.filepicker.sdk.NonThumbnailGridBlockView.java
com.filepicker.sdk.Service.java
com.filepicker.sdk.ThumbnailView.java
livefyre.AppSingleton.java
livefyre.BaseActivity.java
livefyre.DeviceNotConnectedException.java
livefyre.DownloadAllImagesTask.java
livefyre.LFSAppConstants.java
livefyre.LFSConfig.java
livefyre.LFUtils.java
livefyre.LivefyreApplication.java
livefyre.NotifyingScrollView.java
livefyre.ImagesCache.DownloadImageTask.java
livefyre.ImagesCache.ImagesCache.java
livefyre.activities.Edit.java
livefyre.activities.LivefyreSplash.java
livefyre.activities.NewReview.java
livefyre.activities.Reply.java
livefyre.activities.ReviewInDetail.java
livefyre.activities.ReviewsActivity.java
livefyre.adapters.ReviewInDetailAdapter.java
livefyre.adapters.ReviewListAdapter.java
livefyre.fadingactionbar.FadingActionBarHelperBase.java
livefyre.fadingactionbar.FadingActionBarHelper.java
livefyre.fadingactionbar.ListViewActivity.java
livefyre.fadingactionbar.ObservableScrollView.java
livefyre.fadingactionbar.ObservableScrollable.java
livefyre.fadingactionbar.ObservableWebViewWithHeader.java
livefyre.fadingactionbar.OnScrollChangedCallback.java
livefyre.fadingactionbar.RootLayout.java
livefyre.fadingactionbar.Utils.java
livefyre.models.AuthorsBean.java
livefyre.models.ContentBean.java
livefyre.models.ContentTypeEnum.java
livefyre.models.OembedBean.java
livefyre.models.ReviewStatus.java
livefyre.models.Vote.java
livefyre.parsers.AdminClintParser.java
livefyre.parsers.ContentParser.java
livefyre.parsers.ContentUpdateListener.java
livefyre.streamhub.AdminClient.java
livefyre.streamhub.BootstrapClient.java
livefyre.streamhub.BuildConfig.java
livefyre.streamhub.BuildConfig.java
livefyre.streamhub.Config.java
livefyre.streamhub.Helpers.java
livefyre.streamhub.HttpClient.java
livefyre.streamhub.LFSActions.java
livefyre.streamhub.LFSConstants.java
livefyre.streamhub.LFSFlag.java
livefyre.streamhub.StreamClient.java
livefyre.streamhub.WriteClient.java