Android Open Source - webots-remote-control Camera Joysticks View






From Project

Back to project page webots-remote-control.

License

The source code is released under:

GNU Lesser General Public License

If you think the Android project webots-remote-control 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 org.black_mesa.webots_remote_control.views;
/*w  ww. j  a  v a  2  s  .c om*/
import org.black_mesa.webots_remote_control.activities.MainActivity;
import org.black_mesa.webots_remote_control.listeners.CameraJoysticksViewListener;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;

/**
 * 
 * @author Cassim Ketfi
 * 
 */
public class CameraJoysticksView extends View implements CameraJoysticksViewListener {
  // Left Joystick
  private float mCenterXMainCircleLeft = 0; // Center view x position
  private float mCenterYMainCircleLeft = 0; // Center view y position
  private float mCenterXSecondaryCircleLeft = 0; // Center view x position
  private float mCenterYSecondaryCircleLeft = 0; // Center view y position
  // Right Joystick
  private float mCenterXMainCircleRight = 0; // Center view x position
  private float mCenterYMainCircleRight = 0; // Center view y position
  private float mCenterXSecondaryCircleRight = 0; // Center view x position
  private float mCenterYSecondaryCircleRight = 0; // Center view y position

  private Paint mMainCircle;
  private Paint mSecondaryCircle;
  private Paint mHorizontalLine;
  private Paint mVerticalLine;
  private float mJoystickRadiusLeft;
  private float mJoystickRadiusRight;

  public CameraJoysticksView(Context context) {
    super(context);
    initPaints();

  }

  public CameraJoysticksView(Context context, AttributeSet attrs) {
    super(context, attrs);
    initPaints();
  }

  public CameraJoysticksView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    initPaints();
  }

  protected void initPaints() {
    mMainCircle = new Paint(Paint.ANTI_ALIAS_FLAG);
    mMainCircle.setColor(Color.WHITE);
    mMainCircle.setStyle(Paint.Style.FILL_AND_STROKE);
    mSecondaryCircle = new Paint();
    mSecondaryCircle.setColor(Color.GREEN);
    mSecondaryCircle.setStyle(Paint.Style.STROKE);

    mVerticalLine = new Paint();
    mVerticalLine.setStrokeWidth(5);
    mVerticalLine.setColor(Color.RED);

    mHorizontalLine = new Paint();
    mHorizontalLine.setStrokeWidth(2);
    mHorizontalLine.setColor(Color.BLACK);
    Log.d("DERP", "DURRR");
    MainActivity.CAMERAS_MANAGER.registerV2(this);
  }

  @Override
  protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    drawJoystick(canvas, mCenterXMainCircleLeft, mCenterYMainCircleLeft, mCenterXSecondaryCircleLeft,
        mCenterYSecondaryCircleLeft, mJoystickRadiusLeft);
    drawJoystick(canvas, mCenterXMainCircleRight, mCenterYMainCircleRight, mCenterXSecondaryCircleRight,
        mCenterYSecondaryCircleRight, mJoystickRadiusRight);

  }

  private void drawJoystick(Canvas canvas, float centerXMainCircle, float centerYMainCircle,
      float centerXSecondaryCircle, float centerYSecondaryCircle, float joystickRadius) {
    // painting the main circle
    canvas.drawCircle(centerXMainCircle, centerYMainCircle, joystickRadius, mMainCircle);
    // painting the secondary circle
    canvas.drawCircle(centerXSecondaryCircle, centerYSecondaryCircle, joystickRadius / 2, mSecondaryCircle);
    // paint lines
    canvas.drawLine(centerXMainCircle, centerYMainCircle, centerXMainCircle, (centerYMainCircle - joystickRadius),
        mVerticalLine);
    canvas.drawLine((centerXMainCircle - joystickRadius), centerYMainCircle, (centerXMainCircle + joystickRadius),
        centerYMainCircle, mHorizontalLine);
    canvas.drawLine(centerXMainCircle, (centerYMainCircle + joystickRadius), centerXMainCircle, centerYMainCircle,
        mHorizontalLine);
  }

  @Override
  public void onJoystickLeftCoordinateChanged(float centerXJoystickLeft, float centerYJoystickLeft,
      float joystickRadiusJoystickLeft) {
    this.mCenterXMainCircleLeft = centerXJoystickLeft;
    this.mCenterYMainCircleLeft = centerYJoystickLeft;
    this.mCenterXSecondaryCircleLeft = centerXJoystickLeft;
    this.mCenterYSecondaryCircleLeft = centerYJoystickLeft;
    this.mJoystickRadiusLeft = joystickRadiusJoystickLeft;
    this.invalidate();
  }

  @Override
  public void onJoystickRightCoordinateChanged(float centerXJoystickRight, float centerYJoystickRight,
      float joystickRadiusJoystickRight) {
    this.mCenterXMainCircleRight = centerXJoystickRight;
    this.mCenterYMainCircleRight = centerYJoystickRight;
    this.mCenterXSecondaryCircleRight = centerXJoystickRight;
    this.mCenterYSecondaryCircleRight = centerYJoystickRight;
    this.mJoystickRadiusRight = joystickRadiusJoystickRight;
    this.invalidate();
  }

}




Java Source Code List

org.black_mesa.webots_remote_control.activities.AboutFragment.java
org.black_mesa.webots_remote_control.activities.AddServerActivity.java
org.black_mesa.webots_remote_control.activities.CameraFragment.java
org.black_mesa.webots_remote_control.activities.ConnectionFragment.java
org.black_mesa.webots_remote_control.activities.MainActivity.java
org.black_mesa.webots_remote_control.client.CamerasManager.java
org.black_mesa.webots_remote_control.client.Client.java
org.black_mesa.webots_remote_control.client.ConnectionManager.java
org.black_mesa.webots_remote_control.client.ConnectionState.java
org.black_mesa.webots_remote_control.client.package-info.java
org.black_mesa.webots_remote_control.communication_structures.CameraInstructionQueue.java
org.black_mesa.webots_remote_control.communication_structures.CameraInstruction.java
org.black_mesa.webots_remote_control.communication_structures.CommunicationStructure.java
org.black_mesa.webots_remote_control.communication_structures.package-info.java
org.black_mesa.webots_remote_control.database.DataBaseContract.java
org.black_mesa.webots_remote_control.database.DataBaseHelper.java
org.black_mesa.webots_remote_control.database.DataSource.java
org.black_mesa.webots_remote_control.database.ServerListAdapter.java
org.black_mesa.webots_remote_control.database.Server.java
org.black_mesa.webots_remote_control.listeners.CameraJoysticksViewListener.java
org.black_mesa.webots_remote_control.listeners.CameraTouchListenerV1.java
org.black_mesa.webots_remote_control.listeners.CameraTouchListenerV2.java
org.black_mesa.webots_remote_control.listeners.CameraTouchListenerV3.java
org.black_mesa.webots_remote_control.listeners.CameraTouchListenerV4.java
org.black_mesa.webots_remote_control.listeners.CameraTouchListenerV5.java
org.black_mesa.webots_remote_control.listeners.ClientListener.java
org.black_mesa.webots_remote_control.listeners.ConnectionManagerListener.java
org.black_mesa.webots_remote_control.listeners.OnListEventsListener.java
org.black_mesa.webots_remote_control.listeners.package-info.java
org.black_mesa.webots_remote_control.utils.CameraTouchHandlerV1.java
org.black_mesa.webots_remote_control.utils.CameraTouchHandlerV2.java
org.black_mesa.webots_remote_control.utils.CameraTouchHandlerV3.java
org.black_mesa.webots_remote_control.utils.CameraTouchHandlerV4.java
org.black_mesa.webots_remote_control.utils.CameraTouchHandlerV5.java
org.black_mesa.webots_remote_control.utils.package-info.java
org.black_mesa.webots_remote_control.views.CameraJoysticksView.java
org.black_mesa.webots_remote_control.views.CameraView.java