Android Open Source - MrParkingNavigator Navigator Floor View






From Project

Back to project page MrParkingNavigator.

License

The source code is released under:

MIT License

If you think the Android project MrParkingNavigator 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 ru.mail.parking.ui;
//w ww.j  av  a  2s .  c  o m
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.ScaleGestureDetector;

import ru.mail.parking.App;
import ru.mail.parking.floors.Floor;
import ru.mail.parking.floors.Place;
import ru.mail.parking.utils.Utils;

public class NavigatorFloorView implements MultiscrollView.AttachedView {
  private static final int MARKER_COLOR = 0x707070FF;
  private static final int MARKER_WIDTH = 49;
  private static final int MARKER_HEIGHT = 19;

  private final MultiscrollView mScrollView;
  private final Paint mFloorPaint = new Paint();
  private final Paint mMarkerPaint = new Paint();

  private final float mMarkerLeft;
  private final float mMarkerTop;
  private final float mMarkerWidth;
  private final float mMarkerHeight;

  private final Bitmap mFloor;

  private float mZoom;
  private final int mWidth;
  private final int mHeight;


  public NavigatorFloorView(Place place, MultiscrollView scrollView) {
    mMarkerLeft = Utils.dp(place.getCoordX());
    mMarkerTop = Utils.dp(place.getCoordY());
    mMarkerWidth = Utils.dp(place.isVertical() ? MARKER_HEIGHT : MARKER_WIDTH);
    mMarkerHeight = Utils.dp(place.isVertical() ? MARKER_WIDTH : MARKER_HEIGHT);

    Floor f = App.floors().getFloor(place.getFloor());
    mFloor = BitmapFactory.decodeResource(App.app().getResources(), f.getImageRes());

    mMarkerPaint.setColor(MARKER_COLOR);

    mWidth = mFloor.getWidth();
    mHeight = mFloor.getHeight();
    mScrollView = scrollView;

    mZoom = 0.5f;
  }

  @Override
  public int getWidth() {
    return (int)(mWidth * mZoom);
  }

  @Override
  public int getHeight() {
    return (int)(mHeight * mZoom);
  }

  @Override
  public void draw(Canvas canvas, int scrollX, int scrollY) {
    canvas.save();
    canvas.scale(mZoom, mZoom);
    canvas.drawBitmap(mFloor, 0, 0, mFloorPaint);

    canvas.translate(mMarkerLeft, mMarkerTop);
    canvas.drawRect(0, 0, mMarkerWidth, mMarkerHeight, mMarkerPaint);
    canvas.restore();
  }

  @Override
  public boolean onTap(int x, int y) {
    return false;
  }

  @Override
  public void onHolderReady(int width, int height) {
    mScrollView.onAttachedViewResized();
  }

  @Override
  public ScaleGestureDetector.SimpleOnScaleGestureListener createZoomListener() {
    return new ScaleGestureDetector.SimpleOnScaleGestureListener() {
      private float mInitialZoom = 1.0f;

      @Override
      public boolean onScale(ScaleGestureDetector detector) {
        float zoom = mInitialZoom * detector.getScaleFactor();
        if (zoom < 0.5f || zoom > 3.0f) {
          mInitialZoom = zoom;
          return true;
        }

        mZoom = zoom;
        mScrollView.onAttachedViewResized();
        mScrollView.invalidate();
        return false;
      }

      @Override
      public boolean onScaleBegin(ScaleGestureDetector detector) {
        mInitialZoom = mZoom;
        return super.onScaleBegin(detector);
      }
    };
  }
}




Java Source Code List

com.sonyericsson.extras.liveware.aef.control.Control.java
com.sonyericsson.extras.liveware.aef.control.package-info.java
com.sonyericsson.extras.liveware.aef.notification.Notification.java
com.sonyericsson.extras.liveware.aef.notification.package-info.java
com.sonyericsson.extras.liveware.aef.registration.Registration.java
com.sonyericsson.extras.liveware.aef.registration.package-info.java
com.sonyericsson.extras.liveware.aef.sensor.Sensor.java
com.sonyericsson.extras.liveware.aef.sensor.package-info.java
com.sonyericsson.extras.liveware.extension.util.Dbg.java
com.sonyericsson.extras.liveware.extension.util.ExtensionService.java
com.sonyericsson.extras.liveware.extension.util.ExtensionUtils.java
com.sonyericsson.extras.liveware.extension.util.control.ControlExtension.java
com.sonyericsson.extras.liveware.extension.util.control.ControlListItem.java
com.sonyericsson.extras.liveware.extension.util.control.ControlObjectClickEvent.java
com.sonyericsson.extras.liveware.extension.util.control.ControlTouchEvent.java
com.sonyericsson.extras.liveware.extension.util.control.ControlViewGroup.java
com.sonyericsson.extras.liveware.extension.util.control.ControlView.java
com.sonyericsson.extras.liveware.extension.util.notification.DelayedContentObserver.java
com.sonyericsson.extras.liveware.extension.util.notification.NotificationUtil.java
com.sonyericsson.extras.liveware.extension.util.registration.DeviceInfoHelper.java
com.sonyericsson.extras.liveware.extension.util.registration.DeviceInfo.java
com.sonyericsson.extras.liveware.extension.util.registration.DisplayInfo.java
com.sonyericsson.extras.liveware.extension.util.registration.HostApplicationInfo.java
com.sonyericsson.extras.liveware.extension.util.registration.IRegisterCallback.java
com.sonyericsson.extras.liveware.extension.util.registration.InputInfo.java
com.sonyericsson.extras.liveware.extension.util.registration.KeyPadInfo.java
com.sonyericsson.extras.liveware.extension.util.registration.RegisterExtensionTask.java
com.sonyericsson.extras.liveware.extension.util.registration.RegistrationAdapter.java
com.sonyericsson.extras.liveware.extension.util.registration.RegistrationInformation.java
com.sonyericsson.extras.liveware.extension.util.sensor.AccessorySensorEventListener.java
com.sonyericsson.extras.liveware.extension.util.sensor.AccessorySensorEvent.java
com.sonyericsson.extras.liveware.extension.util.sensor.AccessorySensorException.java
com.sonyericsson.extras.liveware.extension.util.sensor.AccessorySensorManager.java
com.sonyericsson.extras.liveware.extension.util.sensor.AccessorySensorType.java
com.sonyericsson.extras.liveware.extension.util.sensor.AccessorySensor.java
ru.mail.parking.App.java
ru.mail.parking.Preferences.java
ru.mail.parking.floors.FloorNavigator.java
ru.mail.parking.floors.Floor.java
ru.mail.parking.floors.Place.java
ru.mail.parking.sw2.SwControlFlow.java
ru.mail.parking.sw2.screens.SwBaseScreen.java
ru.mail.parking.sw2.screens.SwEnterPlaceScreen.java
ru.mail.parking.sw2.screens.SwFreePlacesScreen.java
ru.mail.parking.sw2.screens.SwNavigatorScreen.java
ru.mail.parking.sw2.screens.SwPlaceScreen.java
ru.mail.parking.sw2.system.SwReceiver.java
ru.mail.parking.sw2.system.SwRegInfo.java
ru.mail.parking.sw2.system.SwService.java
ru.mail.parking.ui.AboutActivity.java
ru.mail.parking.ui.DataDetailsActivity.java
ru.mail.parking.ui.EnterPlaceActivity.java
ru.mail.parking.ui.MultiscrollView.java
ru.mail.parking.ui.NavigatorActivity.java
ru.mail.parking.ui.NavigatorFloorView.java
ru.mail.parking.ui.SettingsActivity.java
ru.mail.parking.utils.NetworkAwaiter.java
ru.mail.parking.utils.NetworkStateReceiver.java
ru.mail.parking.utils.Utils.java
ru.mail.parking.widget.MainReceiver.java
ru.mail.parking.widget.MainWidgetProvider.java
ru.mail.parking.widget.SmartUpdate.java
ru.mail.parking.widget.UpdateService.java