Android Open Source - Aviary-Android-SDK Pack Icon Callable






From Project

Back to project page Aviary-Android-SDK.

License

The source code is released under:

AVIARY API TERMS OF USE Full Legal Agreement The following terms and conditions and the terms and conditions at http://www.aviary.com/terms (collectively, the ?Terms??) govern your use of any and ...

If you think the Android project Aviary-Android-SDK 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.aviary.android.feather.utils;
/*  w w w. ja v a  2  s  .  co m*/
import java.lang.ref.SoftReference;
import java.util.concurrent.Callable;

import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;

import com.aviary.android.feather.R;
import com.aviary.android.feather.cds.AviaryCds.PackType;
import com.aviary.android.feather.library.utils.BitmapUtils;
import com.squareup.picasso.Transformation;

public class PackIconCallable implements Transformation, Callable<Bitmap> {

  final String imagePath;
  final PackType packType;
  final SoftReference<Resources> resourcesRef;
  
  int fallbackResId = -1;
  int maxSize = -1;

  public PackIconCallable ( Resources resources, PackType packType, String imagePath ) {
    this.imagePath = imagePath;
    this.packType = packType;
    this.resourcesRef = new SoftReference<Resources>( resources );
  }
  
  public PackIconCallable ( Resources resources, PackType packType, String imagePath, int fallbackResId, int maxSize ) {
    this( resources, packType, imagePath );
    this.fallbackResId = fallbackResId;
    this.maxSize = maxSize;
  }

  @Override
  public Bitmap call() throws Exception {

    Bitmap result = null;
    Bitmap bitmap = null;
    final Resources resources = resourcesRef.get();

    if ( null == resources ) {
      return null;
    }

    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inPreferredConfig = Config.ARGB_8888;

    if ( null != imagePath && imagePath.length() > 0 ) {
      result = BitmapFactory.decodeFile( imagePath, options );
    }

    if ( null == result ) {
      result = BitmapFactory.decodeResource( resources, fallbackResId );
    }
    
    result = transform( result );

    if ( maxSize > 0 && null != result ) {
      bitmap = BitmapUtils.resizeBitmap( result, maxSize, maxSize );
      if ( null != bitmap && result != bitmap ) {
        result.recycle();
        result = bitmap;
      }
    }

    return result;
  }

  public static Bitmap generate( Resources res, Bitmap icon, PackType packType, int maxSize ) {
    Bitmap result = generate( res, icon, packType );
    Bitmap resized = BitmapUtils.resizeBitmap( result, maxSize, maxSize );
    
    if( resized != null && resized != result ) {
      if( result != icon ) {
        result.recycle();
      }
    }
    return resized;
  }
  
  public static Bitmap generate( Resources res, Bitmap icon, PackType packType ) {
    Bitmap background;
    
    if( res == null ) return icon;
    
    if ( PackType.EFFECT.equals( packType ) ) {
      background = BitmapFactory.decodeResource( res, R.drawable.aviary_effects_pack_background );
      if ( null != background ) {
        Bitmap newBitmap = BitmapUtils.roundedCorners( icon, 10, 10 );
        Bitmap result = BitmapUtils.flattenDrawables( new BitmapDrawable( res, background ), new BitmapDrawable( res, newBitmap ), 0.76f, 0f );
        
        if( null != result && !newBitmap.equals( result ) ) {
          newBitmap.recycle();
          newBitmap = null;
        }
        
        return result;
      }
    } else if ( PackType.STICKER.equals( packType ) ) {
      background = BitmapFactory.decodeResource( res, R.drawable.aviary_sticker_pack_background );
      if ( null != background ) {
        return BitmapUtils.flattenDrawables( new BitmapDrawable( res, background ), new BitmapDrawable( res, icon ), 0.58f, 0.05f );
      }
    }
    return icon;
  }

  @Override
  public String key() {
    return null;
  }

  @Override
  public Bitmap transform( Bitmap bitmap ) {

    final Resources resources = resourcesRef.get();

    if ( null == resources ) {
      return null;
    }

    // packtype
    if ( null != bitmap ) {
      Bitmap result = generate( resources, bitmap, packType );

      if ( null != result && result != bitmap ) {
        bitmap.recycle();
        bitmap = result;
      }
    }
    
    return bitmap;
  }
}




Java Source Code List

com.aviary.android.feather.AlertActivity.java
com.aviary.android.feather.AviaryMainController.java
com.aviary.android.feather.FeatherActivity.java
com.aviary.android.feather.async_tasks.AsyncImageManager.java
com.aviary.android.feather.async_tasks.DownloadImageAsyncTask.java
com.aviary.android.feather.async_tasks.ExifTask.java
com.aviary.android.feather.effects.AbstractContentPanel.java
com.aviary.android.feather.effects.AbstractOptionPanel.java
com.aviary.android.feather.effects.AbstractPanelLoaderService.java
com.aviary.android.feather.effects.AbstractPanel.java
com.aviary.android.feather.effects.AdjustEffectPanel.java
com.aviary.android.feather.effects.BordersPanel.java
com.aviary.android.feather.effects.ColorSplashPanel.java
com.aviary.android.feather.effects.CropPanel.java
com.aviary.android.feather.effects.DelayedSpotDrawPanel.java
com.aviary.android.feather.effects.DrawingPanel.java
com.aviary.android.feather.effects.EffectsPanel.java
com.aviary.android.feather.effects.EnhanceEffectPanel.java
com.aviary.android.feather.effects.MemePanel.java
com.aviary.android.feather.effects.NativeEffectRangePanel.java
com.aviary.android.feather.effects.SimpleStatusMachine.java
com.aviary.android.feather.effects.SliderEffectPanel.java
com.aviary.android.feather.effects.StickersPanel.java
com.aviary.android.feather.effects.TextPanel.java
com.aviary.android.feather.effects.TiltShiftPanel.java
com.aviary.android.feather.graphics.CdsPreviewTransformer.java
com.aviary.android.feather.graphics.GalleryBottomIndicatorDrawable.java
com.aviary.android.feather.graphics.GalleryTopIndicatorDrawable.java
com.aviary.android.feather.graphics.GlowBitmapDrawable.java
com.aviary.android.feather.graphics.GlowDrawable.java
com.aviary.android.feather.graphics.PluginDividerDrawable.java
com.aviary.android.feather.graphics.PreviewFillColorDrawable.java
com.aviary.android.feather.graphics.PreviewSpotDrawable.java
com.aviary.android.feather.graphics.RepeatableHorizontalDrawable.java
com.aviary.android.feather.opengl.AviaryGLSurfaceView.java
com.aviary.android.feather.utils.PackIconCallable.java
com.aviary.android.feather.utils.SimpleBitmapCache.java
com.aviary.android.feather.utils.ThreadUtils.java
com.aviary.android.feather.utils.TypefaceUtils.java
com.aviary.android.feather.utils.UIUtils.java
com.aviary.android.feather.widget.AdjustImageView.java
com.aviary.android.feather.widget.AviaryAbsSpinner.java
com.aviary.android.feather.widget.AviaryAdapterView.java
com.aviary.android.feather.widget.AviaryBadgeToolLayout.java
com.aviary.android.feather.widget.AviaryBottomBarViewFlipper.java
com.aviary.android.feather.widget.AviaryButton.java
com.aviary.android.feather.widget.AviaryEdgeEffect.java
com.aviary.android.feather.widget.AviaryGalleryTopIndicatorView.java
com.aviary.android.feather.widget.AviaryGallery.java
com.aviary.android.feather.widget.AviaryHighlightImageButton.java
com.aviary.android.feather.widget.AviaryImageRestoreSwitcher.java
com.aviary.android.feather.widget.AviaryImageSwitcher.java
com.aviary.android.feather.widget.AviaryNavBarViewFlipper.java
com.aviary.android.feather.widget.AviarySeekBar.java
com.aviary.android.feather.widget.AviaryTextView.java
com.aviary.android.feather.widget.AviaryToast.java
com.aviary.android.feather.widget.AviaryToggleButton.java
com.aviary.android.feather.widget.AviaryWheel.java
com.aviary.android.feather.widget.AviaryWorkspaceIndicator.java
com.aviary.android.feather.widget.AviaryWorkspace.java
com.aviary.android.feather.widget.CellLayout.java
com.aviary.android.feather.widget.CropImageView.java
com.aviary.android.feather.widget.DrawableHighlightView.java
com.aviary.android.feather.widget.EffectThumbLayout.java
com.aviary.android.feather.widget.HighlightView.java
com.aviary.android.feather.widget.IAPBuyButton.java
com.aviary.android.feather.widget.IAPDialogDetail.java
com.aviary.android.feather.widget.IAPDialogList.java
com.aviary.android.feather.widget.IAPDialogMain.java
com.aviary.android.feather.widget.ImageViewDrawableOverlay.java
com.aviary.android.feather.widget.ImageViewSpotDraw.java
com.aviary.android.feather.widget.ImageViewTiltiShiftTouch.java
com.aviary.android.feather.widget.ImageViewTouchAndDraw.java
com.aviary.android.feather.widget.PointCloud.java
com.aviary.android.feather.widget.ScrollerRunnable.java
com.aviary.android.feather.widget.VibrationHelper.java
com.aviary.android.feather.widget.VibrationWidget.java