summaryrefslogtreecommitdiff
path: root/org.fox.ttcomics/src/main/java/it/sephiroth/android/library/imagezoom/graphics/FastBitmapDrawable.java
diff options
context:
space:
mode:
Diffstat (limited to 'org.fox.ttcomics/src/main/java/it/sephiroth/android/library/imagezoom/graphics/FastBitmapDrawable.java')
-rw-r--r--org.fox.ttcomics/src/main/java/it/sephiroth/android/library/imagezoom/graphics/FastBitmapDrawable.java84
1 files changed, 84 insertions, 0 deletions
diff --git a/org.fox.ttcomics/src/main/java/it/sephiroth/android/library/imagezoom/graphics/FastBitmapDrawable.java b/org.fox.ttcomics/src/main/java/it/sephiroth/android/library/imagezoom/graphics/FastBitmapDrawable.java
new file mode 100644
index 0000000..8afc38e
--- /dev/null
+++ b/org.fox.ttcomics/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