Image View Demo
Image View Demo
bookmark_border
Kotlin |Java
↳ [Link]
[Link]
↳ [Link]
Known direct subclasses
ImageButton, QuickContactBadge
Known indirect subclasses
ZoomButton
<LinearLayout
xmlns:android="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/my_image"
android:contentDescription="@string/my_image_description"
/>
</LinearLayout>
To learn more about Drawables, see: Drawable Resources. To learn more about
working with Bitmaps, see: Handling Bitmaps.
Summary
XML attributes
android:adjustViewBou Set this to true if you want the ImageView to adjust its bounds to preserve the aspect ratio of its dra
nds
android:baseline The offset of the baseline within this view.
android:baselineAlignB If true, the image view will be baseline aligned with based on its bottom edge.
ottom
android:cropToPadding If true, the image will be cropped to fit within its padding.
android:maxHeight An optional argument to supply a maximum height for this view.
android:maxWidth An optional argument to supply a maximum width for this view.
android:scaleType Controls how the image should be resized or moved to match the size of this ImageView.
android:src Sets a drawable as the content of this ImageView.
android:tint The tinting color for the image.
android:tintMode Blending mode used to apply the image tint.
Inherited constants
From class [Link]
Inherited fields
From class [Link]
Public constructors
ImageView(Context context)
ImageView(Context context, AttributeSet attrs)
ImageView(Context context, AttributeSet attrs, int defStyleAttr)
ImageView(Context context, AttributeSet attrs, int defStyleAttr, int
defStyleRes)
Public methods
void animateTransform(Matrix m
Call [Link]
Drawable objects associated with
int[] onCreateDrawableState(int
Protected methods
void drawableStateChanged()
This function is called whenever the state of the view changes in such a way that it impacts the state of drawables being
void onAttachedToWindow()
Measure the view and its content to determine the measured width and the measured height.
boole setFrame(int l, int t, int r, int b)
an
boole verifyDrawable(Drawable dr)
an
If your view subclass is displaying its own Drawable objects, it should override this function and return true for any Draw
Inherited methods
From class [Link]
From class [Link]
From interface [Link]
From interface [Link]
From interface [Link]
XML attributes
android:adjustViewBounds
Set this to true if you want the ImageView to adjust its bounds to preserve the aspect
ratio of its drawable.
Related methods:
setAdjustViewBounds(boolean)
android:baseline
The offset of the baseline within this view. See {see [Link]#getBaseline} for
details
May be a dimension value, which is a floating point number appended with a unit such
as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled
pixels based on preferred font size), in (inches), and mm (millimeters).
Related methods:
setBaseline(int)
android:baselineAlignBottom
If true, the image view will be baseline aligned with based on its bottom edge.
Related methods:
setBaselineAlignBottom(boolean)
android:cropToPadding
Related methods:
setCropToPadding(boolean)
android:maxHeight
An optional argument to supply a maximum height for this view. See {see
[Link]#setMaxHeight} for details.
May be a dimension value, which is a floating point number appended with a unit such
as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled
pixels based on preferred font size), in (inches), and mm (millimeters).
Related methods:
setMaxHeight(int)
android:maxWidth
An optional argument to supply a maximum width for this view. See {see
[Link]#setMaxWidth} for details.
May be a dimension value, which is a floating point number appended with a unit such
as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled
pixels based on preferred font size), in (inches), and mm (millimeters).
Related methods:
setMaxWidth(int)
android:scaleType
Controls how the image should be resized or moved to match the size of this
ImageView. See [Link]
Related methods:
setScaleType([Link])
android:src
Related methods:
setImageResource(int)
android:tint
The tinting color for the image. By default, the tint will blend using SRC_ATOP mode.
Please note that for compatibility reasons, this is NOT consistent with the default
SRC_IN tint mode used by [Link](ColorStateList) and by similar
tint attributes on other views.
Related methods:
setImageTintList(ColorStateList)
android:tintMode
add 10 Combines the tint and drawable color and alpha channels, clamping the result to valid color values. Saturate(S +
multiply e Multiplies the color and alpha channels of the drawable with those of the tint. [Sa * Da, Sc * Dc]
screen f [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc]
src_atop 9 The tint is drawn above the drawable, but with the drawable\u2019s alpha channel masking the result. [Da, Sc *
src_in 5 The tint is masked by the alpha channel of the drawable. The drawable\u2019s color channels are thrown out. [S
src_over 3 The tint is drawn on top of the drawable. [Sa + (1 - Sa)*Da, Rc = Sc + (1 - Sa)*Dc]
Related methods:
setImageTintMode([Link])
Public constructors
ImageView
Added in API level 1
public ImageView (Context context)
Parameters
conte Context
xt
ImageView
Added in API level 1
public ImageView (Context context,
AttributeSet attrs)
Parameters
conte Context
xt
attrs AttributeSet: This value may be null.
ImageView
Added in API level 1
public ImageView (Context context,
AttributeSet attrs,
int defStyleAttr)
Parameters
context Context
attrs AttributeSet: This value may be null.
defStyleA int
ttr
ImageView
Added in API level 21
public ImageView (Context context,
AttributeSet attrs,
int defStyleAttr,
int defStyleRes)
Parameters
context Context
attrs AttributeSet: This value may be null.
defStyleA int
ttr
defStyleR int
es
Public methods
animateTransform
Added in API level 29
public void animateTransform (Matrix matrix)
Applies a temporary transformation Matrix to the view's drawable when it is drawn.
Allows custom scaling, translation, and perspective distortion during an animation. This
method is a lightweight analogue of ImageView#setImageMatrix(Matrix) to use only
during animations as this matrix will be cleared after the next drawable update or view's
bounds change.
Parameters
matr Matrix: The transformation parameters in matrix form. This value may be null.
ix
clearColorFilter
Added in API level 1
public final void clearColorFilter ()
See also:
setColorFilter(int)
getColorFilter()
drawableHotspotChanged
Added in API level 21
public void drawableHotspotChanged (float x,
float y)
This function is called whenever the view hotspot changes and needs to be propagated
to drawables or child views managed by the view.
Parameters
getAccessibilityClassName
Added in API level 23
public CharSequence getAccessibilityClassName ()
Return the class name of this object to be used for accessibility purposes. Subclasses
should only override this if they are implementing something that should be seen as a
completely new class of view when used by accessibility, unrelated to the class it is
deriving from. This is used to fill in [Link].
Returns
CharSeque
nce
getAdjustViewBounds
Added in API level 16
public boolean getAdjustViewBounds ()
True when ImageView is adjusting its bounds to preserve the aspect ratio of its
drawable
android:adjustViewBounds
Returns
boole whether to adjust the bounds of this view to preserve the original aspect ratio of the drawable
an
See also:
setAdjustViewBounds(boolean)
getBaseline
Added in API level 1
public int getBaseline ()
Return the offset of the widget's text baseline from the widget's top boundary.
Returns
in the offset of the baseline within the widget's bounds or -1 if baseline alignment is not supported.
t
getBaselineAlignBottom
Added in API level 11
public boolean getBaselineAlignBottom ()
Checks whether this view's baseline is considered the bottom of the view.
Returns
boole True if the ImageView's baseline is considered the bottom of the view, false if otherwise.
an
See also:
setBaselineAlignBottom(boolean)
getColorFilter
Added in API level 16
public ColorFilter getColorFilter ()
Returns
See also:
setColorFilter([Link])
getCropToPadding
Added in API level 16
public boolean getCropToPadding ()
android:cropToPadding
Returns
See also:
setCropToPadding(boolean)
getDrawable
Added in API level 1
public Drawable getDrawable ()
Returns
getImageAlpha
Added in API level 16
public int getImageAlpha ()
Returns the alpha that will be applied to the drawable of this ImageView.
Returns
in the alpha value that will be applied to the drawable of this ImageView (between 0 and 255 inclusive, with 0 being transparent
t
See also:
setImageAlpha(int)
getImageMatrix
Added in API level 1
public Matrix getImageMatrix ()
Returns the view's optional matrix. This is applied to the view's drawable when it is
drawn. If there is no matrix, this method will return an identity matrix. Do not change this
matrix in place but make a copy. If you want a different matrix applied to the drawable,
be sure to call setImageMatrix().
Returns
Matri
x
getImageTintBlendMode
Added in API level 29
public BlendMode getImageTintBlendMode ()
Gets the blending mode used to apply the tint to the image Drawable
android:tintMode
Returns
BlendMo the blending mode used to apply the tint to the image Drawable This value may be null.
de
See also:
setImageTintBlendMode(BlendMode)
getImageTintList
Added in API level 21
public ColorStateList getImageTintList ()
Get the current ColorStateList used to tint the image Drawable, or null if no tint is
applied.
android:tint
Returns
See also:
setImageTintList(ColorStateList)
getImageTintMode
Added in API level 21
public [Link] getImageTintMode ()
Gets the blending mode used to apply the tint to the image Drawable
android:tintMode
Returns
PorterDuff.M the blending mode used to apply the tint to the image Drawable This value may be null.
ode
See also:
setImageTintMode([Link])
getMaxHeight
Added in API level 16
public int getMaxHeight ()
android:maxHeight
Returns
See also:
setMaxHeight(int)
getMaxWidth
Added in API level 16
public int getMaxWidth ()
android:maxWidth
Returns
See also:
setMaxWidth(int)
getScaleType
Added in API level 1
public [Link] getScaleType ()
Returns the current ScaleType that is used to scale the bounds of an image to the
bounds of the ImageView.
android:scaleType
Returns
See also:
[Link]
hasOverlappingRendering
Added in API level 16
public boolean hasOverlappingRendering ()
Returns
boole true if the content in this view might overlap, false otherwise.
an
invalidateDrawable
Added in API level 1
public void invalidateDrawable (Drawable dr)
Parameters
isOpaque
Added in API level 7
public boolean isOpaque ()
Indicates whether this View is opaque. An opaque View guarantees that it will draw all
the pixels overlapping its bounds using a fully opaque color. Subclasses of View should
override this method whenever possible to indicate whether an instance is opaque.
Opaque Views are treated in a special way by the View hierarchy, possibly allowing it to
perform optimizations during invalidate/draw passes.
Returns
jumpDrawablesToCurrentState
Added in API level 11
public void jumpDrawablesToCurrentState ()
Generate the new Drawable state for this view. This is called by the view system when
the cached Drawable state is determined to be invalid. To retrieve the current state, you
should use getDrawableState().
Parameters
extraSp int: if non-zero, this is the number of extra entries you would like in the returned array in which you can place your o
ace
Returns
int[] Returns an array holding the current Drawable state of the view.
onRtlPropertiesChanged
Added in API level 17
public void onRtlPropertiesChanged (int layoutDirection)
Called when any RTL property (layout direction or text direction or text alignment) has
been changed. Subclasses need to override this method to take care of cached
information that depends on the resolved layout direction, or to inform child views that
inherit their layout direction. The default implementation does nothing.
Parameters
onVisibilityAggregated
Added in API level 24
public void onVisibilityAggregated (boolean isVisible)
Called when the user-visibility of this View is potentially affected by a change to this
view itself, an ancestor view or the window this view is attached to.
If you override this method you must call through to the superclass implementation.
Parameters
isVisibl boolean: true if this view and all of its ancestors are [Link] and this view's window is also visible
e
setAdjustViewBounds
Added in API level 1
public void setAdjustViewBounds (boolean adjustViewBounds)
Set this to true if you want the ImageView to adjust its bounds to preserve the aspect
ratio of its drawable.
Note: If the application targets API level 17 or lower, adjustViewBounds will allow the
drawable to shrink the view bounds, but not grow to fill available measured space in all
cases. This is for compatibility with legacy MeasureSpec and RelativeLayout behavior.
android:adjustViewBounds
Parameters
adjustViewBou boolean: Whether to adjust the bounds of this view to preserve the original aspect ratio of the drawable.
nds
See also:
getAdjustViewBounds()
setAlpha
Added in API level 1
Deprecated in API level 16
public void setAlpha (int alpha)
alph int: the alpha value that should be applied to the image
a
setBaseline
Added in API level 11
public void setBaseline (int baseline)
Set the offset of the widget's text baseline from the widget's top boundary. This value is
overridden by the setBaselineAlignBottom(boolean) property.
android:baseline
Parameters
See also:
setBaseline(int)
setBaselineAlignBottom
Added in API level 11
public void setBaselineAlignBottom (boolean aligned)
Sets whether the baseline of this view to the bottom of the view. Setting this value
overrides any calls to setBaseline.
android:baselineAlignBottom
Parameters
align boolean: If true, the image view will be baseline aligned by its bottom edge.
ed
setColorFilter
Added in API level 1
public final void setColorFilter (int color,
[Link] mode)
android:tint
Parameters
setColorFilter
Added in API level 1
public void setColorFilter (ColorFilter cf)
Parameters
See also:
getColorFilter()
setColorFilter
Added in API level 8
public final void setColorFilter (int color)
android:tint
Parameters
setCropToPadding
Added in API level 16
public void setCropToPadding (boolean cropToPadding)
android:cropToPadding
Parameters
See also:
getCropToPadding()
setImageAlpha
Added in API level 16
public void setImageAlpha (int alpha)
alph int: the alpha value that should be applied to the image (between 0 and 255 inclusive, with 0 being transparent and 255 bei
a
See also:
getImageAlpha()
setImageBitmap
Added in API level 1
public void setImageBitmap (Bitmap bm)
Parameters
setImageDrawable
Added in API level 1
public void setImageDrawable (Drawable drawable)
Parameters
setImageIcon
Added in API level 23
public void setImageIcon (Icon icon)
Sets the content of this ImageView to the specified Icon.
Depending on the Icon type, this may do Bitmap reading and decoding on the UI thread, which can
cause UI jank. If that's a concern, consider using Icon#loadDrawableAsync(Context,
[Link], Handler) and
then setImageDrawable([Link]) instead.
Parameters
ico Icon: an Icon holding the desired image, or null to clear the content
n
setImageLevel
Added in API level 1
public void setImageLevel (int level)
Parameters
setImageMatrix
Added in API level 1
public void setImageMatrix (Matrix matrix)
Adds a transformation Matrix that is applied to the view's drawable when it is drawn.
Allows custom scaling, translation, and perspective distortion.
Parameters
setImageResource
Added in API level 1
public void setImageResource (int resId)
This does Bitmap reading and decoding on the UI thread, which can cause a latency hiccup. If that's
a concern, consider
using setImageDrawable([Link]) or setImageBitmap(and
[Link]) and BitmapFactory instead.
android:src
Parameters
setImageState
Added in API level 1
public void setImageState (int[] state,
boolean merge)
Set the state of the current StateListDrawable. For more information about State List
Drawables, see: the Drawable Resource Guide.
Parameters
setImageTintBlendMode
Added in API level 29
public void setImageTintBlendMode (BlendMode blendMode)
Specifies the blending mode used to apply the tint specified
by setImageTintList([Link]) } to the image drawable. The
default mode is BlendMode#SRC_IN.
android:tintMode
Parameters
blendMo BlendMode: the blending mode used to apply the tint, may be null to clear tint
de
See also:
getImageTintMode()
[Link](BlendMode)
setImageTintList
Added in API level 21
public void setImageTintList (ColorStateList tint)
Applies a tint to the image drawable. Does not modify the current tint mode, which
is [Link]#SRC_IN by default.
Note: The default tint mode used by this setter is NOT consistent with the default tint
mode used by the android:tint attribute. If the android:tint attribute is specified, the
default tint mode will be set to [Link]#SRC_ATOP to ensure consistency with
earlier versions of the platform.
android:tint
Parameters
getImageTintList()
[Link](ColorStateList)
setImageTintMode
Added in API level 21
public void setImageTintMode ([Link] tintMode)
android:tintMode
Parameters
tintMo [Link]: the blending mode used to apply the tint, may be null to clear tint
de
See also:
getImageTintMode()
[Link]([Link])
setImageURI
Added in API level 1
public void setImageURI (Uri uri)
Sets the content of this ImageView to the specified Uri. Note that you use this method to
load images from a local Uri only.
To learn how to display images from a remote Uri see: Handling Bitmaps
This does Bitmap reading and decoding on the UI thread, which can cause a latency hiccup. If that's
a concern, consider
using setImageDrawable([Link]) or setImageBitmap(and
[Link]) and BitmapFactory instead.
On devices running SDK < 24, this method will fail to apply correct density scaling to images loaded
from content and file schemes. Applications running on devices with SDK >= 24 MUST specify
the targetSdkVersion in their manifest as 24 or above for density scaling to be applied to images
loaded from these schemes.
Parameters
setMaxHeight
Added in API level 1
public void setMaxHeight (int maxHeight)
An optional argument to supply a maximum height for this view. Only valid
if setAdjustViewBounds(boolean) has been set to true. To set an image to be a
maximum of 100 x 100 while preserving the original aspect ratio, do the following: 1) set
adjustViewBounds to true 2) set maxWidth and maxHeight to 100 3) set the height and
width layout params to WRAP_CONTENT.
Note that this view could be still smaller than 100 x 100 using this approach if the
original image is small. To set an image to a fixed size, specify that size in the layout
params and then use setScaleType([Link]) to
determine how to fit the image within the bounds.
android:maxHeight
Parameters
See also:
getMaxHeight()
setMaxWidth
Added in API level 1
public void setMaxWidth (int maxWidth)
An optional argument to supply a maximum width for this view. Only valid
if setAdjustViewBounds(boolean) has been set to true. To set an image to be a
maximum of 100 x 100 while preserving the original aspect ratio, do the following: 1) set
adjustViewBounds to true 2) set maxWidth and maxHeight to 100 3) set the height and
width layout params to WRAP_CONTENT.
Note that this view could be still smaller than 100 x 100 using this approach if the
original image is small. To set an image to a fixed size, specify that size in the layout
params and then use setScaleType([Link]) to
determine how to fit the image within the bounds.
android:maxWidth
Parameters
See also:
getMaxWidth()
setScaleType
Added in API level 1
public void setScaleType ([Link] scaleType)
Controls how the image should be resized or moved to match the size of this
ImageView.
android:scaleType
Parameters
Changes the selection state of this view. A view can be selected or not. Note that
selection is not the same as focus. Views are typically selected in the context of an
AdapterView like ListView or GridView; the selected view is the view that is highlighted.
Parameters
setVisibility
Added in API level 1
public void setVisibility (int visibility)
Parameters
Protected methods
drawableStateChanged
Added in API level 1
protected void drawableStateChanged ()
This function is called whenever the state of the view changes in such a way that it
impacts the state of drawables being shown.
If the View has a StateListAnimator, it will also be called to run necessary state change
animations.
Be sure to call through to the superclass when overriding this function.
If you override this method you must call through to the superclass implementation.
onAttachedToWindow
Added in API level 1
protected void onAttachedToWindow ()
This is called when the view is attached to a window. At this point it has a Surface and
will start drawing. Note that this function is guaranteed to be called
before onDraw([Link]), however it may be called any time before
the first onDraw -- including before or after onMeasure(int, int).
If you override this method you must call through to the superclass implementation.
onDetachedFromWindow
Added in API level 1
protected void onDetachedFromWindow ()
This is called when the view is detached from a window. At this point it no longer has a
surface for drawing.
If you override this method you must call through to the superclass implementation.
onDraw
Added in API level 1
protected void onDraw (Canvas canvas)
Parameters
canv Canvas: the canvas on which the background will be drawn This value cannot be null.
as
onMeasure
Added in API level 1
protected void onMeasure (int widthMeasureSpec,
int heightMeasureSpec)
Measure the view and its content to determine the measured width and the measured
height. This method is invoked by measure(int, int) and should be overridden by
subclasses to provide accurate and efficient measurement of their contents.
The base class implementation of measure defaults to the background size, unless a
larger size is allowed by the MeasureSpec. Subclasses should override onMeasure(int,
int) to provide better measurements of their content.
Parameters
widthMeasureS int: horizontal space requirements as imposed by the parent. The requirements are encoded with [Link]
pec
heightMeasure int: vertical space requirements as imposed by the parent. The requirements are encoded with [Link]
Spec
setFrame
Added in API level 1
protected boolean setFrame (int l,
int t,
int r,
int b)
Parameters
l int
t int
r int
b int
Returns
boole
an
verifyDrawable
Added in API level 1
protected boolean verifyDrawable (Drawable dr)
If your view subclass is displaying its own Drawable objects, it should override this
function and return true for any Drawable it is displaying. This allows animations for
those drawables to be scheduled.
Be sure to call through to the super class when overriding this function.
If you override this method you must call through to the superclass implementation.
Parameters
Returns
boole boolean If true then the Drawable is being displayed in the view; else false and it is not allowed to animate.
an