X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/FreeShisen/blobdiff_plain/341682548c876653db2cd7892cac65858c42d215..HEAD:/src/de/cwde/freeshisen/ShisenShoView.java diff --git a/src/de/cwde/freeshisen/ShisenShoView.java b/src/de/cwde/freeshisen/ShisenShoView.java index 2864811..6a38ffc 100644 --- a/src/de/cwde/freeshisen/ShisenShoView.java +++ b/src/de/cwde/freeshisen/ShisenShoView.java @@ -7,12 +7,13 @@ import java.util.Timer; import java.util.TimerTask; import android.app.Activity; +import android.app.AlertDialog; import android.content.Context; +import android.content.SharedPreferences; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; -import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Paint.Align; import android.graphics.Paint.Cap; @@ -22,6 +23,7 @@ import android.graphics.Rect; import android.graphics.Typeface; import android.os.Handler; import android.os.Message; +import android.preference.PreferenceManager; import android.view.MenuItem; import android.view.MotionEvent; import android.view.SurfaceHolder; @@ -40,12 +42,7 @@ class ShisenShoView extends SurfaceView implements SurfaceHolder.Callback { private int screenWidth; private int screenHeight; - private int tilesetRows; - private int tilesetCols; - private int tileHeight; - private int tileWidth; private Bitmap bg; - private Bitmap tile[]; private Point selection1 = new Point(0, 0); private Point selection2 = new Point(0, 0); private List path = null; @@ -54,6 +51,7 @@ class ShisenShoView extends SurfaceView implements SurfaceHolder.Callback { private long playTime; private long baseTime; private Timer timer; + private Tileset tileset; static class hHandler extends Handler { private final WeakReference mTarget; @@ -80,17 +78,21 @@ class ShisenShoView extends SurfaceView implements SurfaceHolder.Callback { private SurfaceHolder surfaceHolder = null; private String time = INVALID_TIME; - public ShisenShoView(ShisenSho shishenSho) { - super((Context) shishenSho); - this.app = shishenSho; + public ShisenShoView(ShisenSho shisenSho) { + super((Context) shisenSho); + this.app = shisenSho; cstate = StatePlay.UNINITIALIZED; surfaceHolder = getHolder(); surfaceHolder.addCallback(this); + tileset = new Tileset(shisenSho); } public ShisenShoView(Context ctx) { - super((Context) ctx); - // silence lint? + super(ctx); + this.app = (ShisenSho) ctx; + cstate = StatePlay.UNINITIALIZED; + surfaceHolder = getHolder(); + surfaceHolder.addCallback(this); } private void paint(StatePaint pstate) { @@ -102,45 +104,6 @@ class ShisenShoView extends SurfaceView implements SurfaceHolder.Callback { this.cstate=cstate; } - private void loadTileset() { - BitmapFactory.Options ops = new BitmapFactory.Options(); - ops.inScaled = false; - Bitmap tileset = BitmapFactory.decodeResource(getResources(), R.drawable.tileset, ops); - tileset.setDensity(Bitmap.DENSITY_NONE); - - // The tile set has 4 rows x 9 columns - tilesetRows = 4; - tilesetCols = 9; - int loadedtileWidth = tileset.getWidth()/tilesetCols; - int loadedtileHeight = tileset.getHeight()/tilesetRows; - tile = new Bitmap[tilesetRows*tilesetCols]; - - // align to screen: - // "large" is 16x6, and we want to have a nice border, so we use 17x7 and - // choose the lowest scale so everything fits - float scalex = ((float) screenWidth/17) / loadedtileWidth; - float scaley = ((float) screenHeight/7) / loadedtileHeight; - if (scaley < scalex) { - scalex = scaley; - } else { - scaley = scalex; - } - Matrix matrix = new Matrix(); - matrix.setScale(scalex, scaley); - - int k=0; - for (int i=0; i