// Created by plusminus on 21:37:42 - 09.09.2008
package org.androad.ui.map.hud.impl.basic.views;
import org.androad.adt.UnitSystem;
import org.androad.preferences.PreferenceConstants;
import org.androad.ui.map.hud.IHUDView;
import org.androad.util.constants.Constants;
import org.androad.util.constants.TimeConstants;
import android.content.Context;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.widget.ImageView;
public abstract class HUDBaseView extends ImageView implements IHUDView, Constants, TimeConstants, PreferenceConstants{
// ===========================================================
// Constants
// ===========================================================
// ===========================================================
// Fields
// ===========================================================
protected final Paint mFullOpaquePaint, mHudTextPaint;
protected int mDistance = NOT_SET;
protected UnitSystem mUnitSystem = UnitSystem.IMPERIAL;
protected final String[] mDistanceStrings = new String[2];
// ===========================================================
// Constructors
// ===========================================================
public HUDBaseView(final Context context, final AttributeSet attrs) {
super(context, attrs);
this.mFullOpaquePaint = new Paint();
this.mHudTextPaint = new Paint();
this.mHudTextPaint.setAntiAlias(false);
this.mHudTextPaint.setStrokeWidth(1);
this.mHudTextPaint.setFakeBoldText(true);
this.mHudTextPaint.setStyle(Paint.Style.FILL_AND_STROKE);
}
// ===========================================================
// Getter & Setter
// ===========================================================
// ===========================================================
// Methods from SuperClass/Interfaces
// ===========================================================
@Override
public void onClick(){
// Nothing
}
@Override
public void reset() {
this.mDistance = NOT_SET;
}
/**
* @param aMeterDistance in meters!
*/
@Override
public void setDistance(final int aMeterDistance){
this.mDistance = aMeterDistance;
}
@Override
public void setUnitSystem(final UnitSystem aUnitSystem){
this.mUnitSystem = aUnitSystem;
}
@Override
public void setDisplayQuality(final int aDisplayQuality){
switch(aDisplayQuality){
case PREF_DISPLAYQUALITY_BEST:
case PREF_DISPLAYQUALITY_HIGH:
case PREF_DISPLAYQUALITY_STANDARD:
this.mHudTextPaint.setAntiAlias(true);
case PREF_DISPLAYQUALITY_LOW:
break;
}
}
// ===========================================================
// Methods
// ===========================================================
protected void refreshDistanceStrings(){
refreshDistanceStrings(this.mDistance);
}
/**
* Writes data to the parameter <code>mDistanceStrings</code> in the specific UnitSystem.
*/
protected void refreshDistanceStrings(final int aDistance){
this.mUnitSystem.getDistanceString(aDistance, this.mDistanceStrings);
}
// ===========================================================
// Inner and Anonymous Classes
// ===========================================================
}