PinView

public final class PinView extends View


A custom View that renders a pin marker based on a PinConfiguration.

This view draws a stylized pin with a circular head and a pointed tip, commonly used for marking locations on a map. The appearance of the pin, including its color, border, and glyph (icon or text), can be customized using PinConfiguration.

Developers are fully responsible for the accessibility of the content within their custom View.

Summary

Public constructors

PinView(Context context)

Constructs a new PinView.

PinView(Context context, @Nullable AttributeSet attrs)

Constructs a new PinView.

PinView(Context context, PinConfiguration pinConfiguration)

Constructs a new PinView.

PinView(
    Context context,
    @Nullable AttributeSet attrs,
    @StyleRes int defStyle
)

Constructs a new PinView.

Public methods

CharSequence
PinConfiguration

Returns the current PinConfiguration used by this view.

void

Sets the PinConfiguration for this view.

Protected methods

void
onDraw(Canvas canvas)

Draws the view's content onto the provided canvas.

void
onMeasure(int widthMeasureSpec, int heightMeasureSpec)

Measures the view and its content to determine the measured width and the measured height.

Inherited Constants

From android.view.View
static final int
static final int
static final int
static final int
static final int
static final int
static final Property<View, Float>
static final int
static final String
AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE = "creditCardExpirationDate"
static final String
AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DAY = "creditCardExpirationDay"
static final String
AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH = "creditCardExpirationMonth"
static final String
AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR = "creditCardExpirationYear"
static final String
static final String
AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE = "creditCardSecurityCode"
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int
static final int
static final int
static final int
static final int
static final int
static final int[]
static final int[]
static final int[]
static final int[]
static final int
static final int
static final int
static final int
static final int
static final int
static final int
GONE = 8
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
KEEP_SCREEN_ON = 67108864
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
NO_ID = -1
static final int
static final int
static final int
static final int
static final int
static final int
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int
static final int
static final int
static final int
static final float
static final float
static final float
static final float
static final float
static final Property<View, Float>
static final Property<View, Float>
static final Property<View, Float>
static final Property<View, Float>
static final Property<View, Float>
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int[]
static final int[]
static final int
static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final Property<View, Float>
static final Property<View, Float>
static final Property<View, Float>
static final String
VIEW_LOG_TAG = "View"
static final int
static final int[]
static final Property<View, Float>
static final Property<View, Float>
static final Property<View, Float>

Inherited methods

From android.view.View
void
void
void
void
void
void
void
void
ViewPropertyAnimator
void

This method is deprecated.

void
boolean
void
void

This method is deprecated.

void
boolean
boolean
boolean
boolean
boolean
boolean
final void
void
final void
boolean
void
void
void
void
static int
combineMeasuredStates(int p, int p1)
int
int
int
void
WindowInsets
int
int
int
AccessibilityNodeInfo
void
void

This method is deprecated.

WindowInsets
boolean
void
void
dispatchCreateViewTranslationRequest(
    Map<AutofillId, long[]> p,
    int[] p1,
    TranslationCapability p2,
    List<ViewTranslationRequest> p3
)
void
boolean
void
void
dispatchDrawableHotspotChanged(float p, float p1)
void
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
dispatchNestedFling(float p, float p1, boolean p2)
boolean
dispatchNestedPreFling(float p, float p1)
boolean
boolean
dispatchNestedPreScroll(int p, int p1, int[] p2, int[] p3)
boolean
dispatchNestedScroll(int p, int p1, int p2, int p3, int[] p4)
void
boolean
void
void
void
void
void
boolean
void
void
dispatchSetPressed(boolean p)
void
void
void

This method is deprecated.

boolean
boolean
boolean
void
void
void
void
WindowInsets
WindowInsetsAnimation.Bounds
void

This method is deprecated.

void
void
void
drawableHotspotChanged(float p, float p1)
void
View
final OnBackInvokedDispatcher
final T
<T extends View> findViewById(int p)
final T
<T extends View> findViewWithTag(Object p)
void
boolean

This method is deprecated.

View
focusSearch(int p)
void
void
boolean
void
generateDisplayHash(
    String p,
    Rect p1,
    Executor p2,
    DisplayHashResultCallback p3
)
static int
View.AccessibilityDelegate
int
AccessibilityNodeProvider
CharSequence
int
int
String
String
float
Animation
Matrix
IBinder
int[]
Map<Integer, Integer>
String[]
final AutofillId
int
AutofillValue
Drawable
BlendMode
ColorStateList
PorterDuff.Mode
int
final int
float
int
float
Rect
boolean
final boolean
final ContentCaptureSession
CharSequence
final int
final Context
ContextMenu.ContextMenuInfo
final boolean
static int
getDefaultSize(int p, int p1)
Display
final int[]
Bitmap

This method is deprecated.

int

This method is deprecated.

int

This method is deprecated.

void
long
float
int
boolean
boolean
int
ArrayList<View>
void
Drawable
int
BlendMode
ColorStateList
PorterDuff.Mode
float
final boolean
Handler
float
float
float
float
int
Runnable
final boolean
final int
void
int
int
Drawable
Drawable
int
int
int
int
boolean
KeyEvent.DispatcherState
int
int
int
ViewGroup.LayoutParams
final int
float
int
final boolean
void
void
void
Matrix
final int
final int
final int
final int
final int
int
int
int
int
int
int
int
int
View.OnFocusChangeListener
int
ViewOutlineProvider
int
int
ViewOverlay
int
int
int
int
int
int
final ViewParent
ViewParent
final OutcomeReceiver<GetCredentialResponse, GetCredentialException>
final GetCredentialRequest
float
float
PointerIcon
final List<Rect>
String[]
float
Resources
final boolean
final int
float
int
AttachedSurfaceControl
View
WindowInsets
float
float
float
float
float
int
int
int
int
int
int
final int
final int
int
int
final CharSequence
StateListAnimator
int
int
CharSequence
List<Rect>
int

This method is deprecated.

Object
int
int
CharSequence
final int
float
int
TouchDelegate
ArrayList<View>
float
String
float
float
float
long
int
int
Drawable
Drawable
int
ViewTranslationResponse
ViewTreeObserver
int
final int
int
WindowId
WindowInsetsController
int

This method is deprecated.

IBinder
int
void
float
float
float
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
static View
inflate(Context p, int p1, ViewGroup p2)
void
void
void
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
final boolean
boolean
boolean

This method is deprecated.

boolean
boolean

This method is deprecated.

boolean
boolean
final boolean
final boolean
boolean
final boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
final boolean
final boolean
boolean
boolean
boolean
final boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
final boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
final boolean
boolean
boolean
final boolean
boolean
boolean
boolean
boolean
boolean
void
View
void
layout(int p, int p1, int p2, int p3)
final void
measure(int p, int p1)
static int[]
mergeDrawableStates(int[] p, int[] p1)
void
void
void
void
WindowInsets
void
void
boolean
boolean
void
void
int[]
InputConnection
void
void
onCreateVirtualViewTranslationRequests(
    long[] p,
    int[] p1,
    Consumer<ViewTranslationRequest> p2
)
void
void
boolean
void
final void
boolean
void
void
void
onFocusChanged(boolean p, int p1, Rect p2)
boolean
void
onHoverChanged(boolean p)
boolean
void
void
boolean
onKeyDown(int p, KeyEvent p1)
boolean
onKeyLongPress(int p, KeyEvent p1)
boolean
onKeyMultiple(int p, int p1, KeyEvent p2)
boolean
onKeyPreIme(int p, KeyEvent p1)
boolean
onKeyShortcut(int p, KeyEvent p1)
boolean
onKeyUp(int p, KeyEvent p1)
void
onLayout(boolean p, int p1, int p2, int p3, int p4)
void
onOverScrolled(int p, int p1, boolean p2, boolean p3)
void
void
void
void
void
void
void
void
ContentInfo
PointerIcon
void
void
Parcelable
void
void
onScrollCaptureSearch(
    Rect p,
    Point p1,
    Consumer<ScrollCaptureTarget> p2
)
void
onScrollChanged(int p, int p1, int p2, int p3)
boolean
boolean
onSetAlpha(int p)
void
onSizeChanged(int p, int p1, int p2, int p3)
void
boolean
boolean
void
void
void
void
void
void

This method is deprecated.

void
boolean
overScrollBy(
    int p,
    int p1,
    int p2,
    int p3,
    int p4,
    int p5,
    int p6,
    int p7,
    boolean p8
)
boolean
boolean
boolean
boolean
boolean
ContentInfo
void
boolean
boolean
postDelayed(Runnable p, long p1)
void
void
void
void
void
void
static void
void
boolean
void
void
void
void
void
void

This method is deprecated.

final boolean
final boolean
void
void
boolean
final void
final T
<T extends View> requireViewById(int p)
void
static int
resolveSize(int p, int p1)
static int
resolveSizeAndState(int p, int p1, int p2)
boolean
void
final void
saveAttributeDataForStyleable(
    Context p,
    int[] p1,
    AttributeSet p2,
    TypedArray p3,
    int p4,
    int p5
)
void
void
scheduleDrawable(Drawable p, Runnable p1, long p2)
void
scrollBy(int p, int p1)
void
scrollTo(int p, int p1)
void
void
void
void
void
void
void
void
void
void
setActivated(boolean p)
void
void
void
void
setAlpha(float p)
void
void
void
void
setAutofillHints(String[] p)
void
void
void
void
void

This method is deprecated.

void
void
void
void
final void
setBottom(int p)
void
void
setClickable(boolean p)
void
void
setClipToOutline(boolean p)
void
void
final void
void
void
void

This method is deprecated.

void

This method is deprecated.

void

This method is deprecated.

void
void
setElevation(float p)
void
setEnabled(boolean p)
void
void
void
void
setFocusable(boolean p)
void
void
void
void
void
void
void
void
void
void
setHandwritingBoundsOffsets(float p, float p1, float p2, float p3)
void
void
void
void
void
void
void
void
void
setHovered(boolean p)
void
setId(int p)
void
void
void
void
setIsCredential(boolean p)

This method is deprecated.

void
void
setKeepScreenOn(boolean p)
void
void
setLabelFor(int p)
void
void
setLayerType(int p, Paint p1)
void
void
final void
setLeft(int p)
final void
setLeftTopRightBottom(int p, int p1, int p2, int p3)
void
setLongClickable(boolean p)
final void
setMeasuredDimension(int p, int p1)
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void

This method is deprecated.

void
void
void
void
void
void
setPadding(int p, int p1, int p2, int p3)
void
setPaddingRelative(int p, int p1, int p2, int p3)
void
void
setPivotX(float p)
void
setPivotY(float p)
void
final void
setPreferKeepClear(boolean p)
final void
void
setPressed(boolean p)
void
void
final void
final void
setRight(int p)
void
setRotation(float p)
void
setRotationX(float p)
void
setRotationY(float p)
void
setSaveEnabled(boolean p)
void
void
setScaleX(float p)
void
setScaleY(float p)
void
void
void
void
void
final void
void
void
setScrollContainer(boolean p)
void
void
setScrollX(int p)
void
setScrollY(int p)
void
void
setSelected(boolean p)
void
void
void
void
void
void

This method is deprecated.

void
setTag(int p, Object p1)
void
void
void
final void
setTop(int p)
void
void
final void
void
void
setTranslationX(float p)
void
setTranslationY(float p)
void
setTranslationZ(float p)
void
void
void
void
void
void
void
void

This method is deprecated.

void
setWillNotDraw(boolean p)
void
void
setX(float p)
void
setY(float p)
void
setZ(float p)
boolean
ActionMode
void
final boolean

This method is deprecated.

final boolean
startDragAndDrop(
    ClipData p,
    View.DragShadowBuilder p1,
    Object p2,
    int p3
)
boolean
void
String
void
void
static void
void
final void
boolean
boolean

This method is deprecated.

boolean

Public fields

pinConfiguration

public PinConfiguration pinConfiguration

Public constructors

PinView

public PinView(Context context)

Constructs a new PinView.

Parameters
Context context

The Context the view is running in, through which it can access the current theme, resources, etc.

PinView

public PinView(Context context, @Nullable AttributeSet attrs)

Constructs a new PinView.

Parameters
Context context

The Context the view is running in, through which it can access the current theme, resources, etc.

@Nullable AttributeSet attrs

The attributes of the XML tag that is inflating the view.

PinView

public PinView(Context context, PinConfiguration pinConfiguration)

Constructs a new PinView.

Parameters
Context context

The Context the view is running in, through which it can access the current theme, resources, etc.

PinConfiguration pinConfiguration

The pin configuration to use for this view.

PinView

public PinView(
    Context context,
    @Nullable AttributeSet attrs,
    @StyleRes int defStyle
)

Constructs a new PinView.

Parameters
Context context

The Context the view is running in, through which it can access the current theme, resources, etc.

@Nullable AttributeSet attrs

The attributes of the XML tag that is inflating the view.

@StyleRes int defStyle

An attribute in the current theme that contains a reference to a style resource that supplies default values for the view. Can be 0 to not look for defaults.

Public methods

getAccessibilityClassName

public CharSequence getAccessibilityClassName()

getPinConfiguration

public PinConfiguration getPinConfiguration()

Returns the current PinConfiguration used by this view.

setPinConfiguration

public void setPinConfiguration(PinConfiguration pinConfiguration)

Sets the PinConfiguration for this view.

Applying a new configuration updates the view's layout parameters and requests a redraw.

Parameters
PinConfiguration pinConfiguration

The configuration to apply.

Protected methods

onDraw

protected void onDraw(Canvas canvas)

Draws the view's content onto the provided canvas.

This method draws the pin shape, border, and glyph based on the current PinConfiguration.

Parameters
Canvas canvas

The canvas on which the background will be drawn.

onMeasure

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

Measures the view and its content to determine the measured width and the measured height.

The desired size is calculated based on predefined DP constants and the scale factor from PinConfiguration.

Parameters
int widthMeasureSpec

horizontal space requirements as imposed by the parent.

int heightMeasureSpec

vertical space requirements as imposed by the parent.