Cache Paint objects instead of allocation in draw method

This commit is contained in:
Cameron Gutman 2016-01-07 02:23:34 -06:00
parent 49e2c40ba4
commit 7da5d5322b
4 changed files with 7 additions and 7 deletions

View File

@ -116,7 +116,7 @@ public class AnalogStick extends VirtualControllerElement {
private float position_stick_x = 0; private float position_stick_x = 0;
private float position_stick_y = 0; private float position_stick_y = 0;
private Paint paint = new Paint(); private final Paint paint = new Paint();
private STICK_STATE stick_state = STICK_STATE.NO_MOVEMENT; private STICK_STATE stick_state = STICK_STATE.NO_MOVEMENT;
private CLICK_STATE click_state = CLICK_STATE.SINGLE; private CLICK_STATE click_state = CLICK_STATE.SINGLE;

View File

@ -59,6 +59,8 @@ public class DigitalButton extends VirtualControllerElement {
private Timer timerLongClick = null; private Timer timerLongClick = null;
private TimerLongClickTimerTask longClickTimerTask = null; private TimerLongClickTimerTask longClickTimerTask = null;
private final Paint paint = new Paint();
private int layer; private int layer;
private DigitalButton movingButton = null; private DigitalButton movingButton = null;
@ -142,8 +144,6 @@ public class DigitalButton extends VirtualControllerElement {
// set transparent background // set transparent background
canvas.drawColor(Color.TRANSPARENT); canvas.drawColor(Color.TRANSPARENT);
Paint paint = new Paint();
paint.setTextSize(getPercent(getCorrectWidth(), 50)); paint.setTextSize(getPercent(getCorrectWidth(), 50));
paint.setTextAlign(Paint.Align.CENTER); paint.setTextAlign(Paint.Align.CENTER);
paint.setStrokeWidth(3); paint.setStrokeWidth(3);

View File

@ -22,6 +22,8 @@ public class DigitalPad extends VirtualControllerElement {
public final static int DIGITAL_PAD_DIRECTION_DOWN = 8; public final static int DIGITAL_PAD_DIRECTION_DOWN = 8;
List<DigitalPadListener> listeners = new ArrayList<DigitalPadListener>(); List<DigitalPadListener> listeners = new ArrayList<DigitalPadListener>();
private final Paint paint = new Paint();
public DigitalPad(VirtualController controller, Context context) { public DigitalPad(VirtualController controller, Context context) {
super(controller, context); super(controller, context);
} }
@ -35,8 +37,6 @@ public class DigitalPad extends VirtualControllerElement {
// set transparent background // set transparent background
canvas.drawColor(Color.TRANSPARENT); canvas.drawColor(Color.TRANSPARENT);
Paint paint = new Paint();
paint.setTextSize(getPercent(getCorrectWidth(), 20)); paint.setTextSize(getPercent(getCorrectWidth(), 20));
paint.setTextAlign(Paint.Align.CENTER); paint.setTextAlign(Paint.Align.CENTER);
paint.setStrokeWidth(3); paint.setStrokeWidth(3);

View File

@ -18,6 +18,8 @@ public abstract class VirtualControllerElement extends View {
protected VirtualController virtualController; protected VirtualController virtualController;
private final Paint paint = new Paint();
protected int normalColor = 0xF0888888; protected int normalColor = 0xF0888888;
protected int pressedColor = 0xF00000FF; protected int pressedColor = 0xF00000FF;
@ -71,8 +73,6 @@ public abstract class VirtualControllerElement extends View {
protected void onDraw(Canvas canvas) { protected void onDraw(Canvas canvas) {
if (virtualController.getControllerMode() == VirtualController.ControllerMode. if (virtualController.getControllerMode() == VirtualController.ControllerMode.
Configuration) { Configuration) {
Paint paint = new Paint();
paint.setColor(pressedColor); paint.setColor(pressedColor);
paint.setStrokeWidth(3); paint.setStrokeWidth(3);
paint.setStyle(Paint.Style.STROKE); paint.setStyle(Paint.Style.STROKE);