Android Open Source - slider Bitmap Caching Piece Drawer From Project Back to project page slider .
License The source code is released under:
Apache License
If you think the Android project slider 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 de.devisnik.android.sliding.tile;
/ * f r o m w w w . j a v a 2 s . c o m * /
import java.util.HashMap;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Bitmap.Config;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import de.devisnik.sliding.IPiece;
import de.devisnik.sliding.Point;
public class BitmapCachingPieceDrawer implements IPieceDrawer {
private final IPieceDrawer itsTileDrawer;
private final HashMap<IPiece, Bitmap> itsCache = new HashMap<IPiece, Bitmap>();
private final Paint mPaint;
public BitmapCachingPieceDrawer(final IPieceDrawer tileDrawer) {
itsTileDrawer = tileDrawer;
mPaint = new Paint();
mPaint.setXfermode(new PorterDuffXfermode(Mode.SCREEN));
}
@Override
public Point getTileSize() {
return itsTileDrawer.getTileSize();
}
@Override
public void drawTile(final IPiece piece, final Canvas canvas, final Paint paint) {
Bitmap bitmap = itsCache.get(piece);
if (bitmap == null)
bitmap = cacheBitmap(piece, null);
canvas.drawBitmap(bitmap, 0f, 0f, mPaint);
}
private Bitmap cacheBitmap(final IPiece piece, final Paint paint) {
Point tileSize = itsTileDrawer.getTileSize();
Bitmap bitmap = Bitmap.createBitmap(tileSize.x, tileSize.y, Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
itsTileDrawer.drawTile(piece, canvas, paint);
itsCache.put(piece, bitmap);
return bitmap;
}
}
Java Source Code List de.devisnik.android.sliding.ARandom.java de.devisnik.android.sliding.FPSCounter.java de.devisnik.android.sliding.FrameDrawer.java de.devisnik.android.sliding.ISpeed.java de.devisnik.android.sliding.ImageCache.java de.devisnik.android.sliding.ImageFactory.java de.devisnik.android.sliding.Logger.java de.devisnik.android.sliding.OpenActivity.java de.devisnik.android.sliding.OpenPreviewActivity.java de.devisnik.android.sliding.PropertiesBuilder.java de.devisnik.android.sliding.RenderHandler.java de.devisnik.android.sliding.Replayer.java de.devisnik.android.sliding.Settings.java de.devisnik.android.sliding.SlidingPreferences.java de.devisnik.android.sliding.SlidingWallpaper.java de.devisnik.android.sliding.SpeedFactory.java de.devisnik.android.sliding.SummaryUpdater.java de.devisnik.android.sliding.tile.BitmapCachingPieceDrawer.java de.devisnik.android.sliding.tile.CachingPieceDrawer.java de.devisnik.android.sliding.tile.IPieceDrawer.java de.devisnik.android.sliding.tile.ImagePieceDrawer.java de.devisnik.android.sliding.tile.NumberPieceDrawer.java de.devisnik.android.sliding.tile.PieceDrawerFactory.java de.devisnik.android.sliding.tile.TileShifter.java de.devisnik.android.sliding.tile.TileStore.java de.devisnik.android.sliding.tile.Tile.java de.devisnik.sliding.FrameFactory.java de.devisnik.sliding.FrameScrambler.java de.devisnik.sliding.FromHomeShiftingEvent.java de.devisnik.sliding.IFrameListener.java de.devisnik.sliding.IFrame.java de.devisnik.sliding.IHole.java de.devisnik.sliding.IMove.java de.devisnik.sliding.IPiece.java de.devisnik.sliding.IRandom.java de.devisnik.sliding.IRobotFrame.java de.devisnik.sliding.IShifterListener.java de.devisnik.sliding.MoveFactory.java de.devisnik.sliding.Point.java de.devisnik.sliding.ShiftingEvent.java de.devisnik.sliding.ToHomeShiftingEvent.java de.devisnik.sliding.animation.AccelerateDecelerateInterpolator.java de.devisnik.sliding.animation.AnimationRunner.java de.devisnik.sliding.animation.Animation.java de.devisnik.sliding.animation.IInterpolator.java de.devisnik.sliding.animation.IMovement.java de.devisnik.sliding.animation.IShiftable.java de.devisnik.sliding.animation.LinearInterpolator.java de.devisnik.sliding.animation.MetaShiftable.java de.devisnik.sliding.animation.ShiftAnimation.java de.devisnik.sliding.animation.Translation.java de.devisnik.sliding.impl.Frame.java de.devisnik.sliding.impl.Hole.java de.devisnik.sliding.impl.Move.java de.devisnik.sliding.impl.PieceIterator.java de.devisnik.sliding.impl.Piece.java de.devisnik.sliding.impl.RobotFrame.java de.devisnik.sliding.impl.Scrambler.java