来源:https://developer.android.com/reference/android/widget/ImageView
added in API level 1
ImageView
public class ImageView
extends View
java.lang.Object | ||
↳ | android.view.View | |
↳ | android.widget.ImageView |
Known direct subclasses |
Known indirect subclasses |
Displays image resources, for example Bitmap
or Drawable
resources. ImageView is also commonly used to apply tints to an image
and handle image scaling
.
The following XML snippet is a common example of using an ImageView to display an image resource:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher" /> </LinearLayout>
To learn more about Drawables, see: Drawable Resources. To learn more about working with Bitmaps, see: Handling Bitmaps.
Summary
Nested classes |
|
---|---|
enum |
ImageView.ScaleType Options for scaling the bounds of an image to the bounds of this view. |
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. |
android:baseline |
The offset of the baseline within this view. |
android:baselineAlignBottom |
If true, the image view will be baseline aligned with based on its bottom edge. |
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 XML attributes |
|
---|---|
From class |
Inherited constants |
---|
From class |
Inherited fields |
---|
From class |
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 |
|
---|---|
final void |
clearColorFilter() Removes the image's |
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. |
CharSequence |
getAccessibilityClassName() Return the class name of this object to be used for accessibility purposes. |
boolean |
getAdjustViewBounds() True when ImageView is adjusting its bounds to preserve the aspect ratio of its drawable |
int |
getBaseline() Return the offset of the widget's text baseline from the widget's top boundary. |
boolean |
getBaselineAlignBottom() Checks whether this view's baseline is considered the bottom of the view. |
ColorFilter |
getColorFilter() Returns the active color filter for this ImageView. |
boolean |
getCropToPadding() Return whether this ImageView crops to padding. |
Drawable |
getDrawable() Gets the current Drawable, or null if no Drawable has been assigned. |
int |
getImageAlpha() Returns the alpha that will be applied to the drawable of this ImageView. |
Matrix |
getImageMatrix() Returns the view's optional matrix. |
ColorStateList |
getImageTintList() Get the current |
PorterDuff.Mode |
getImageTintMode() Gets the blending mode used to apply the tint to the image Drawable |
int |
getMaxHeight() The maximum height of this view. |
int |
getMaxWidth() The maximum width of this view. |
ImageView.ScaleType |
getScaleType() Returns the current ScaleType that is used to scale the bounds of an image to the bounds of the ImageView. |
boolean |
hasOverlappingRendering() Returns whether this View has content which overlaps. |
void |
invalidateDrawable(Drawable dr) Invalidates the specified Drawable. |
boolean |
isOpaque() Indicates whether this View is opaque. |
void |
jumpDrawablesToCurrentState() Call |
int[] |
onCreateDrawableState(int extraSpace) Generate the new |
void |
onRtlPropertiesChanged(int layoutDirection) Called when any RTL property (layout direction or text direction or text alignment) has been changed. |
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. |
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. |
void |
setAlpha(int alpha) This method was deprecated in API level 16. use #setImageAlpha(int) instead |
void |
setBaseline(int baseline) Set the offset of the widget's text baseline from the widget's top boundary. |
void |
setBaselineAlignBottom(boolean aligned) Sets whether the baseline of this view to the bottom of the view. |
final void |
setColorFilter(int color, PorterDuff.Mode mode) Sets a tinting option for the image. |
void |
setColorFilter(ColorFilter cf) Apply an arbitrary colorfilter to the image. |
final void |
setColorFilter(int color) Set a tinting option for the image. |
void |
setCropToPadding(boolean cropToPadding) Sets whether this ImageView will crop to padding. |
void |
setImageAlpha(int alpha) Sets the alpha value that should be applied to the image. |
void |
setImageBitmap(Bitmap bm) Sets a Bitmap as the content of this ImageView. |
void |
setImageDrawable(Drawable drawable) Sets a drawable as the content of this ImageView. |
void |
setImageIcon(Icon icon) Sets the content of this ImageView to the specified Icon. |
void |
setImageLevel(int level) Sets the image level, when it is constructed from a |
void |
setImageMatrix(Matrix matrix) Adds a transformation |
void |
setImageResource(int resId) Sets a drawable as the content of this ImageView. |
void |
setImageState(int[] state, boolean merge) Set the state of the current |
void |
setImageTintList(ColorStateList tint) Applies a tint to the image drawable. |
void |
setImageTintMode(PorterDuff.Mode tintMode) Specifies the blending mode used to apply the tint specified by |
void |
setImageURI(Uri uri) Sets the content of this ImageView to the specified Uri. |
void |
setMaxHeight(int maxHeight) An optional argument to supply a maximum height for this view. |
void |
setMaxWidth(int maxWidth) An optional argument to supply a maximum width for this view. |
void |
setScaleType(ImageView.ScaleType scaleType) Controls how the image should be resized or moved to match the size of this ImageView. |
void |
setSelected(boolean selected) Changes the selection state of this view. |
void |
setVisibility(int visibility) Set the visibility state of this view. |
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 shown. |
void |
onAttachedToWindow() This is called when the view is attached to a window. |
void |
onDetachedFromWindow() This is called when the view is detached from a window. |
void |
onDraw(Canvas canvas) Implement this to do your drawing. |
void |
onMeasure(int widthMeasureSpec, int heightMeasureSpec) Measure the view and its content to determine the measured width and the measured height. |
boolean |
setFrame(int l, int t, int r, int b) Assign a size and position to this view. |
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. |
Inherited methods |
|
---|---|
From class |
|
From class |
|
From interface |
|
From interface |
|
From interface |
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.
May be a boolean value, such as "true
" or "false
".
Related methods:
android:baseline
The offset of the baseline within this view. See {see android.view.View#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:
android:baselineAlignBottom
If true, the image view will be baseline aligned with based on its bottom edge.
May be a boolean value, such as "true
" or "false
".
Related methods:
android:cropToPadding
If true, the image will be cropped to fit within its padding.
May be a boolean value, such as "true
" or "false
".
Related methods:
android:maxHeight
An optional argument to supply a maximum height for this view. See {see android.widget.ImageView#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:
android:maxWidth
An optional argument to supply a maximum width for this view. See {see android.widget.ImageView#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:
android:scaleType
Controls how the image should be resized or moved to match the size of this ImageView. See ImageView.ScaleType
Must be one of the following constant values.
Constant | Value | Description |
---|---|---|
center | 5 | Center the image in the view, but perform no scaling. |
centerCrop | 6 | Scale the image uniformly (maintain the image's aspect ratio) so both dimensions (width and height) of the image will be equal to or larger than the corresponding dimension of the view (minus padding). The image is then centered in the view. |
centerInside | 7 | Scale the image uniformly (maintain the image's aspect ratio) so that both dimensions (width and height) of the image will be equal to or less than the corresponding dimension of the view (minus padding). The image is then centered in the view. |
fitCenter | 3 | Scale the image using Matrix.ScaleToFit.CENTER . |
fitEnd | 4 | Scale the image using Matrix.ScaleToFit.END . |
fitStart | 2 | Scale the image using Matrix.ScaleToFit.START . |
fitXY | 1 | Scale the image using Matrix.ScaleToFit.FILL . |
matrix | 0 | Scale using the image matrix when drawing. See ImageView.setImageMatrix(Matrix) . |
Related methods:
android:src
Sets a drawable as the content of this ImageView.
May be a reference to another resource, in the form "@[+][package:]type/name
" or a theme attribute in the form "?[package:]type/name
".
May be a color value, in the form of "#rgb
", "#argb
", "#rrggbb
", or "#aarrggbb
".
Related methods:
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 ImageView.setImageTintList(ColorStateList)
and by similar tint attributes on other views.
May be a color value, in the form of "#rgb
", "#argb
", "#rrggbb
", or "#aarrggbb
".
Related methods:
android:tintMode
Blending mode used to apply the image tint.
Must be one of the following constant values.
Constant | Value | Description |
---|---|---|
add | 10 | Combines the tint and drawable color and alpha channels, clamping the result to valid color values. Saturate(S + D) |
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’s alpha channel masking the result. [Da, Sc * Da + (1 - Sa) * Dc] |
src_in | 5 | The tint is masked by the alpha channel of the drawable. The drawable’s color channels are thrown out. [Sa * Da, Sc * Da] |
src_over | 3 | The tint is drawn on top of the drawable. [Sa + (1 - Sa)*Da, Rc = Sc + (1 - Sa)*Dc] |
Related methods:
Public constructors
ImageView
added in API level 1
public ImageView (Context context)
Parameters | |
---|---|
context |
Context |
ImageView
added in API level 1
public ImageView (Context context, AttributeSet attrs)
Parameters | |
---|---|
context |
Context |
attrs |
AttributeSet This value may be |
ImageView
added in API level 1
public ImageView (Context context, AttributeSet attrs, int defStyleAttr)
Parameters | |
---|---|
context |
Context |
attrs |
AttributeSet This value may be |
defStyleAttr |
int |
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 |
defStyleAttr |
int |
defStyleRes |
int |
Public methods
clearColorFilter
added in API level 1
public final void clearColorFilter ()
Removes the image's ColorFilter
.
See also:
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.
Dispatching to child views is handled by dispatchDrawableHotspotChanged(float, float)
.
Be sure to call through to the superclass when overriding this function.
Parameters | |
---|---|
x |
float : hotspot x coordinate |
y |
float : hotspot y coordinate |
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 AccessibilityNodeInfo.setClassName
.
Returns | |
---|---|
CharSequence |
getAdjustViewBounds
added in API level 16
public boolean getAdjustViewBounds ()
True when ImageView is adjusting its bounds to preserve the aspect ratio of its drawable
Related XML Attributes:
Returns | |
---|---|
boolean |
whether to adjust the bounds of this view to preserve the original aspect ratio of the drawable |
See also:
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 | |
---|---|
int |
the offset of the baseline within the widget's bounds or -1 if baseline alignment is not supported. |
getBaselineAlignBottom
added in API level 11
public boolean getBaselineAlignBottom ()
Checks whether this view's baseline is considered the bottom of the view.
Returns | |
---|---|
boolean |
True if the ImageView's baseline is considered the bottom of the view, false if otherwise. |
See also:
getColorFilter
added in API level 16
public ColorFilter getColorFilter ()
Returns the active color filter for this ImageView.
Returns | |
---|---|
ColorFilter |
the active color filter for this ImageView |
See also:
getCropToPadding
added in API level 16
public boolean getCropToPadding ()
Return whether this ImageView crops to padding.
Related XML Attributes:
Returns | |
---|---|
boolean |
whether this ImageView crops to padding |
See also:
getDrawable
added in API level 1
public Drawable getDrawable ()
Gets the current Drawable, or null if no Drawable has been assigned.
Returns | |
---|---|
Drawable |
the view's drawable, or null if no drawable has been assigned. |
getImageAlpha
added in API level 16
public int getImageAlpha ()
Returns the alpha that will be applied to the drawable of this ImageView.
Returns | |
---|---|
int |
the alpha value that will be applied to the drawable of this ImageView (between 0 and 255 inclusive, with 0 being transparent and 255 being opaque) |
See also:
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 | |
---|---|
Matrix |
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.
Related XML Attributes:
Returns | |
---|---|
ColorStateList |
the tint applied to the image drawable This value may be |
See also:
getImageTintMode
added in API level 21
public PorterDuff.Mode getImageTintMode ()
Gets the blending mode used to apply the tint to the image Drawable
Related XML Attributes:
Returns | |
---|---|
PorterDuff.Mode |
the blending mode used to apply the tint to the image Drawable This value may be |
See also:
getMaxHeight
added in API level 16
public int getMaxHeight ()
The maximum height of this view.
Related XML Attributes:
Returns | |
---|---|
int |
The maximum height of this view |
See also:
getMaxWidth
added in API level 16
public int getMaxWidth ()
The maximum width of this view.
Related XML Attributes:
Returns | |
---|---|
int |
The maximum width of this view |
See also:
getScaleType
added in API level 1
public ImageView.ScaleType getScaleType ()
Returns the current ScaleType that is used to scale the bounds of an image to the bounds of the ImageView.
Related XML Attributes:
Returns | |
---|---|
ImageView.ScaleType |
The ScaleType used to scale the image. |
See also:
hasOverlappingRendering
added in API level 16
public boolean hasOverlappingRendering ()
Returns whether this View has content which overlaps.
This function, intended to be overridden by specific View types, is an optimization when alpha is set on a view. If rendering overlaps in a view with alpha < 1, that view is drawn to an offscreen buffer and then composited into place, which can be expensive. If the view has no overlapping rendering, the view can draw each primitive with the appropriate alpha value directly. An example of overlapping rendering is a TextView with a background image, such as a Button. An example of non-overlapping rendering is a TextView with no background, or an ImageView with only the foreground image. The default implementation returns true; subclasses should override if they have cases which can be optimized.
Note: The return value of this method is ignored if forceHasOverlappingRendering(boolean)
has been called on this view.
Returns | |
---|---|
boolean |
true if the content in this view might overlap, false otherwise. |
invalidateDrawable
added in API level 1
public void invalidateDrawable (Drawable dr)
Invalidates the specified Drawable.
Parameters | |
---|---|
dr |
Drawable : the drawable to invalidate This value must never be |
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 | |
---|---|
boolean |
True if this View is guaranteed to be fully opaque, false otherwise. |
jumpDrawablesToCurrentState
added in API level 11
public void jumpDrawablesToCurrentState ()
Call Drawable.jumpToCurrentState()
on all Drawable objects associated with this view.
Also calls StateListAnimator.jumpToCurrentState()
if there is a StateListAnimator attached to this view.
onCreateDrawableState
added in API level 1
public int[] onCreateDrawableState (int extraSpace)
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 | |
---|---|
extraSpace |
int : if non-zero, this is the number of extra entries you would like in the returned array in which you can place your own states. |
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 | |
---|---|
layoutDirection |
int : the direction of the layout |
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.
Parameters | |
---|---|
isVisible |
boolean : true if this view and all of its ancestors are View.VISIBLE and this view's window is also visible |
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
andRelativeLayout
behavior.
Related XML Attributes:
Parameters | |
---|---|
adjustViewBounds |
boolean : Whether to adjust the bounds of this view to preserve the original aspect ratio of the drawable. |
See also:
setAlpha
added in API level 1
public void setAlpha (int alpha)
This method was deprecated in API level 16.
use #setImageAlpha(int) instead
Sets the alpha value that should be applied to the image.
Parameters | |
---|---|
alpha |
int : the alpha value that should be applied to the image |
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.
Related XML Attributes:
Parameters | |
---|---|
baseline |
int : The baseline to use, or -1 if none is to be provided. |
See also:
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.
Related XML Attributes:
Parameters | |
---|---|
aligned |
boolean : If true, the image view will be baseline aligned by its bottom edge. |
setColorFilter
added in API level 1
public final void setColorFilter (int color, PorterDuff.Mode mode)
Sets a tinting option for the image.
Related XML Attributes:
Parameters | |
---|---|
color |
int : Color tint to apply. |
mode |
PorterDuff.Mode : How to apply the color. The standard mode is PorterDuff.Mode.SRC_ATOP |
setColorFilter
added in API level 1
public void setColorFilter (ColorFilter cf)
Apply an arbitrary colorfilter to the image.
Parameters | |
---|---|
cf |
ColorFilter : the colorfilter to apply (may be null) |
See also:
setColorFilter
added in API level 8
public final void setColorFilter (int color)
Set a tinting option for the image. Assumes PorterDuff.Mode.SRC_ATOP
blending mode.
Related XML Attributes:
Parameters | |
---|---|
color |
int : Color tint to apply. |
setCropToPadding
added in API level 16
public void setCropToPadding (boolean cropToPadding)
Sets whether this ImageView will crop to padding.
Related XML Attributes:
Parameters | |
---|---|
cropToPadding |
boolean : whether this ImageView will crop to padding |
See also:
setImageAlpha
added in API level 16
public void setImageAlpha (int alpha)
Sets the alpha value that should be applied to the image.
Parameters | |
---|---|
alpha |
int : the alpha value that should be applied to the image (between 0 and 255 inclusive, with 0 being transparent and 255 being opaque) |
See also:
setImageBitmap
added in API level 1
public void setImageBitmap (Bitmap bm)
Sets a Bitmap as the content of this ImageView.
Parameters | |
---|---|
bm |
Bitmap : The bitmap to set |
setImageDrawable
added in API level 1
public void setImageDrawable (Drawable drawable)
Sets a drawable as the content of this ImageView.
Parameters | |
---|---|
drawable |
Drawable : the Drawable to set, or null to clear the content |
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, Icon.OnDrawableLoadedListener, Handler)
and then setImageDrawable(android.graphics.drawable.Drawable)
instead.
Parameters | |
---|---|
icon |
Icon : an Icon holding the desired image, or null to clear the content |
setImageLevel
added in API level 1
public void setImageLevel (int level)
Sets the image level, when it is constructed from a LevelListDrawable
.
Parameters | |
---|---|
level |
int : The new level for the image. |
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 | |
---|---|
matrix |
Matrix : The transformation parameters in matrix form. |
setImageResource
added in API level 1
public void setImageResource (int resId)
Sets a drawable as the content of this ImageView.
This does Bitmap reading and decoding on the UI thread, which can cause a latency hiccup. If that's a concern, consider using setImageDrawable(android.graphics.drawable.Drawable)
or setImageBitmap(android.graphics.Bitmap)
andBitmapFactory
instead.
Related XML Attributes:
Parameters | |
---|---|
resId |
int : the resource identifier of the drawable |
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 | |
---|---|
state |
int : the state to set for the StateListDrawable |
merge |
boolean : if true, merges the state values for the state you specify into the current state |
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 PorterDuff.Mode.SRC_IN
by default.
Subsequent calls to setImageDrawable(Drawable)
will automatically mutate the drawable and apply the specified tint and tint mode using Drawable.setTintList(ColorStateList)
.
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 PorterDuff.Mode.SRC_ATOP
to ensure consistency with earlier versions of the platform.
Related XML Attributes:
Parameters | |
---|---|
tint |
ColorStateList : the tint to apply, may be null to clear tint |
See also:
setImageTintMode
added in API level 21
public void setImageTintMode (PorterDuff.Mode tintMode)
Specifies the blending mode used to apply the tint specified by setImageTintList(ColorStateList)
} to the image drawable. The default mode is PorterDuff.Mode.SRC_IN
.
Related XML Attributes:
Parameters | |
---|---|
tintMode |
PorterDuff.Mode : the blending mode used to apply the tint, may be null to clear tint |
See also:
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(Drawable)
or setImageBitmap(android.graphics.Bitmap)
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 | |
---|---|
uri |
Uri : the Uri of an image, or null to clear the content |
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(android.widget.ImageView.ScaleType)
to determine how to fit the image within the bounds.
Related XML Attributes:
Parameters | |
---|---|
maxHeight |
int : maximum height for this view |
See also:
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(android.widget.ImageView.ScaleType)
to determine how to fit the image within the bounds.
Related XML Attributes:
Parameters | |
---|---|
maxWidth |
int : maximum width for this view |
See also:
setScaleType
added in API level 1
public void setScaleType (ImageView.ScaleType scaleType)
Controls how the image should be resized or moved to match the size of this ImageView.
Related XML Attributes:
Parameters | |
---|---|
scaleType |
ImageView.ScaleType : The desired scaling mode. |
setSelected
added in API level 1
public void setSelected (boolean selected)
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 | |
---|---|
selected |
boolean : true if the view must be selected, false otherwise |
setVisibility
added in API level 1
public void setVisibility (int visibility)
Set the visibility state of this view.
Parameters | |
---|---|
visibility |
int : One of View.VISIBLE , View.INVISIBLE , or View.GONE . |
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.
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(android.graphics.Canvas)
, however it may be called any time before the first onDraw -- including before or after onMeasure(int, int)
.
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.
onDraw
added in API level 1
protected void onDraw (Canvas canvas)
Implement this to do your drawing.
Parameters | |
---|---|
canvas |
Canvas : the canvas on which the background will be drawn |
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.
CONTRACT: When overriding this method, you must call setMeasuredDimension(int, int)
to store the measured width and height of this view. Failure to do so will trigger an IllegalStateException
, thrown by measure(int, int)
. Calling the superclass' onMeasure(int, int)
is a valid use.
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.
If this method is overridden, it is the subclass's responsibility to make sure the measured height and width are at least the view's minimum height and width (getSuggestedMinimumHeight()
and getSuggestedMinimumWidth()
).
Parameters | |
---|---|
widthMeasureSpec |
int : horizontal space requirements as imposed by the parent. The requirements are encoded withView.MeasureSpec . |
heightMeasureSpec |
int : vertical space requirements as imposed by the parent. The requirements are encoded withView.MeasureSpec . |
setFrame
added in API level 1
protected boolean setFrame (int l, int t, int r, int b)
Assign a size and position to this view. This is called from layout.
Parameters | |
---|---|
l |
int : Left position, relative to parent |
t |
int : Top position, relative to parent |
r |
int : Right position, relative to parent |
b |
int : Bottom position, relative to parent |
Returns | |
---|---|
boolean |
true if the new size and position are different than the previous ones |
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.
Parameters | |
---|---|
dr |
Drawable : The Drawable to verify. Return true if it is one you are displaying, else return the result of calling through to the super class. This value must never be |
Returns | |
---|---|
boolean |
boolean If true than the Drawable is being displayed in the view; else false and it is not allowed to animate. |