diff --git a/app/src/main/java/xdsopl/robot36/ImageView.java b/app/src/main/java/xdsopl/robot36/ImageView.java index 4757471..b4098f1 100644 --- a/app/src/main/java/xdsopl/robot36/ImageView.java +++ b/app/src/main/java/xdsopl/robot36/ImageView.java @@ -37,6 +37,7 @@ public class ImageView extends SurfaceView implements SurfaceHolder.Callback { private boolean takeABreak = true, cantTouchThis = true, quitThread = false; private int imageWidth = 320; private int imageHeight = 240; + private boolean intScale = false; MainActivity activity; private final SurfaceHolder holder; private final Bitmap bitmap; @@ -134,6 +135,7 @@ public class ImageView extends SurfaceView implements SurfaceHolder.Callback { thread.start(); } + void toggle_scaling() { intScale ^= true; } void softer_image() { rsDecoder.invoke_incr_blur(); } void sharper_image() { rsDecoder.invoke_decr_blur(); } void debug_sync() { rsDecoder.invoke_debug_sync(); } @@ -254,18 +256,20 @@ public class ImageView extends SurfaceView implements SurfaceHolder.Callback { } void drawBitmap(Canvas canvas) { - float sx, sy, px, py; + float sx, sy; if (imageWidth * canvasHeight < canvasWidth * bitmap.getHeight()) { sy = (float)canvasHeight / bitmap.getHeight(); sx = sy * imageWidth / bitmap.getWidth(); - px = (canvasWidth - sx * bitmap.getWidth()) / 2.0f; - py = 0.0f; } else { sx = (float)canvasWidth / bitmap.getWidth(); sy = (float)canvasWidth / imageWidth; - px = 0.0f; - py = (canvasHeight - sy * bitmap.getHeight()) / 2.0f; } + if (intScale) { + sx = (float)Math.floor(sx); + sy = (float)Math.floor(sy); + } + float px = (canvasWidth - sx * bitmap.getWidth()) / 2.0f; + float py = (canvasHeight - sy * bitmap.getHeight()) / 2.0f; canvas.drawColor(Color.BLACK); canvas.save(); canvas.scale(sx, sy, px, py); diff --git a/app/src/main/java/xdsopl/robot36/MainActivity.java b/app/src/main/java/xdsopl/robot36/MainActivity.java index b4b3772..4194138 100644 --- a/app/src/main/java/xdsopl/robot36/MainActivity.java +++ b/app/src/main/java/xdsopl/robot36/MainActivity.java @@ -148,6 +148,9 @@ public class MainActivity extends Activity { case R.id.action_sharper_image: view.sharper_image(); return true; + case R.id.action_toggle_scaling: + view.toggle_scaling(); + return true; case R.id.action_robot36_mode: view.robot36_mode(); return true; diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml index 673a9b4..919202e 100644 --- a/app/src/main/res/menu/menu_main.xml +++ b/app/src/main/res/menu/menu_main.xml @@ -5,6 +5,8 @@ android:orderInCategory="100" android:showAsAction="never" /> + WrasseSC2 180 Mode Softer Image Sharper Image + Toggle Scaling