diff options
Diffstat (limited to 'org.fox.ttrss/src/main/java/it/sephiroth/android/library/imagezoom/graphics/FastBitmapDrawable.java')
-rw-r--r-- | org.fox.ttrss/src/main/java/it/sephiroth/android/library/imagezoom/graphics/FastBitmapDrawable.java | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/org.fox.ttrss/src/main/java/it/sephiroth/android/library/imagezoom/graphics/FastBitmapDrawable.java b/org.fox.ttrss/src/main/java/it/sephiroth/android/library/imagezoom/graphics/FastBitmapDrawable.java new file mode 100644 index 00000000..8afc38ed --- /dev/null +++ b/org.fox.ttrss/src/main/java/it/sephiroth/android/library/imagezoom/graphics/FastBitmapDrawable.java @@ -0,0 +1,84 @@ +package it.sephiroth.android.library.imagezoom.graphics; + +import java.io.InputStream; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.ColorFilter; +import android.graphics.Paint; +import android.graphics.PixelFormat; +import android.graphics.drawable.Drawable; + +/** + * Fast bitmap drawable. Does not support states. it only + * support alpha and colormatrix + * @author alessandro + * + */ +public class FastBitmapDrawable extends Drawable implements IBitmapDrawable { + + protected Bitmap mBitmap; + protected Paint mPaint; + + public FastBitmapDrawable( Bitmap b ) { + mBitmap = b; + mPaint = new Paint(); + mPaint.setDither( true ); + mPaint.setFilterBitmap( true ); + } + + public FastBitmapDrawable( Resources res, InputStream is ){ + this(BitmapFactory.decodeStream(is)); + } + + @Override + public void draw( Canvas canvas ) { + canvas.drawBitmap( mBitmap, 0.0f, 0.0f, mPaint ); + } + + @Override + public int getOpacity() { + return PixelFormat.TRANSLUCENT; + } + + @Override + public void setAlpha( int alpha ) { + mPaint.setAlpha( alpha ); + } + + @Override + public void setColorFilter( ColorFilter cf ) { + mPaint.setColorFilter( cf ); + } + + @Override + public int getIntrinsicWidth() { + return mBitmap.getWidth(); + } + + @Override + public int getIntrinsicHeight() { + return mBitmap.getHeight(); + } + + @Override + public int getMinimumWidth() { + return mBitmap.getWidth(); + } + + @Override + public int getMinimumHeight() { + return mBitmap.getHeight(); + } + + public void setAntiAlias( boolean value ){ + mPaint.setAntiAlias( value ); + invalidateSelf(); + } + + @Override + public Bitmap getBitmap() { + return mBitmap; + } +}
\ No newline at end of file |