Most visited

Recently visited

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


显示任意图像,如图标。 ImageView类可以加载来自各种来源(如资源或内容提供者)的图像,负责从图像计算其测量值,以便它可以在任何布局管理器中使用,并提供各种显示选项,如缩放和着色。

Summary

Nested classes

枚举 ImageView.ScaleType

将图像边界缩放到此视图边界的选项。

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 Set a tinting color for the image. 
android:tintMode Blending mode used to apply the image tint. 

Inherited XML attributes

From class android.view.View

Inherited constants

From class android.view.View

Inherited fields

From class android.view.View

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()
void drawableHotspotChanged(float x, float y)

只要视图热点更改并需要将其传播到视图管理的可绘制视图或子视图,就会调用此函数。

CharSequence getAccessibilityClassName()

返回此对象的类名称以用于辅助功能。

boolean getAdjustViewBounds()

当ImageView正在调整其边界以保留其可绘制的纵横比时为真

int getBaseline()

从小部件的顶部边界返回小部件文本基线的偏移量。

boolean getBaselineAlignBottom()

返回这个视图的基线是否被视为视图的底部。

ColorFilter getColorFilter()

返回此ImageView的活动颜色过滤器。

boolean getCropToPadding()

返回此ImageView是否剪裁为填充。

Drawable getDrawable()

返回视图的drawable,如果没有drawable被赋值,则返回null。

int getImageAlpha()

返回将应用于此ImageView的drawable的alpha。

Matrix getImageMatrix()

返回视图的可选矩阵。

ColorStateList getImageTintList()
PorterDuff.Mode getImageTintMode()
int getMaxHeight()

这个视图的最大高度。

int getMaxWidth()

这个视图的最大宽度。

ImageView.ScaleType getScaleType()

返回此ImageView使用的当前比例类型。

boolean hasOverlappingRendering()

返回此视图是否包含重叠的内容。

void invalidateDrawable(Drawable dr)

使指定的Drawable无效。

boolean isOpaque()

指示此视图是否不透明。

void jumpDrawablesToCurrentState()

在与此视图关联的所有可绘制对象上调用 Drawable.jumpToCurrentState()

int[] onCreateDrawableState(int extraSpace)

为此视图生成新的 Drawable状态。

void onRtlPropertiesChanged(int layoutDirection)

当任何RTL属性(布局方向或文本方向或文本对齐)已被更改时调用。

void onVisibilityAggregated(boolean isVisible)

当此视图的用户可见性可能受到对此视图本身,祖先视图或此视图所附窗口的更改的影响时调用。

void setAdjustViewBounds(boolean adjustViewBounds)

如果您希望ImageView调整其边界以保持其可绘制的高宽比,请将其设置为true。

void setAlpha(int alpha)

此方法在API级别16中已被弃用。请改用#setImageAlpha(int)

void setBaseline(int baseline)

从小部件的顶部边界设置小部件文本基线的偏移量。

void setBaselineAlignBottom(boolean aligned)

设置是否将此视图的基线设置为视图的底部。

final void setColorFilter(int color, PorterDuff.Mode mode)

为图像设置着色选项。

void setColorFilter(ColorFilter cf)

对图像应用任意颜色过滤器。

final void setColorFilter(int color)

为图像设置着色选项。

void setCropToPadding(boolean cropToPadding)

设置此ImageView是否会裁剪为填充。

void setImageAlpha(int alpha)

设置应该应用于图像的Alpha值。

void setImageBitmap(Bitmap bm)

将Bitmap设置为此ImageView的内容。

void setImageDrawable(Drawable drawable)

设置一个drawable作为这个ImageView的内容。

void setImageIcon(Icon icon)

将此ImageView的内容设置为指定的图标。

void setImageLevel(int level)

设置图像级别,当它由 LevelListDrawable

void setImageMatrix(Matrix matrix)

添加绘制时应用于视图可绘制对象的变换 Matrix

void setImageResource(int resId)

设置一个drawable作为这个ImageView的内容。

void setImageState(int[] state, boolean merge)
void setImageTintList(ColorStateList tint)

将图像应用于可绘制图像。

void setImageTintMode(PorterDuff.Mode tintMode)

指定用于将 setImageTintList(ColorStateList) }指定的色调应用于图像可绘制的混合模式。

void setImageURI(Uri uri)

将此ImageView的内容设置为指定的Uri。

void setMaxHeight(int maxHeight)

为此视图提供最大高度的可选参数。

void setMaxWidth(int maxWidth)

为此视图提供最大宽度的可选参数。

void setScaleType(ImageView.ScaleType scaleType)

控制如何调整图像的大小或移动以匹配此ImageView的大小。

void setSelected(boolean selected)

更改此视图的选择状态。

Protected methods

void drawableStateChanged()

只要视图的状态发生变化,就会调用此函数,使得它影响所显示的可绘制状态。

void onDraw(Canvas canvas)

实施这个来做你的绘画。

void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

测量视图及其内容以确定测量宽度和测量高度。

boolean setFrame(int l, int t, int r, int b)

为此视图分配大小和位置。

boolean verifyDrawable(Drawable dr)

如果你的视图子类正在显示它自己的Drawable对象,它应该覆盖这个函数,并且对于它显示的任何Drawable返回true。

Inherited methods

From class android.view.View
From class java.lang.Object
From interface android.graphics.drawable.Drawable.Callback
From interface android.view.KeyEvent.Callback
From interface android.view.accessibility.AccessibilityEventSource

XML attributes

android:adjustViewBounds

如果您希望ImageView调整其边界以保持其可绘制的高宽比,请将其设置为true。

必须是布尔值,可以是“ true ”或“ false ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 adjustViewBounds

相关方法:

android:baseline

该视图中的基线偏移量。 有关详细信息,请参阅{请参阅android.view.View#getBaseline}

必须是维度值,该维度值是附加了单位(例如“ 14.5sp ”)的14.5sp 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 baseline

相关方法:

android:baselineAlignBottom

如果为true,则图像视图将基于其底部边缘进行基线对齐。

必须是布尔值,可以是“ true ”或“ false ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 baselineAlignBottom

相关方法:

android:cropToPadding

如果为true,则图像将被裁剪以适应其填充。

必须是布尔值,“ true ”或“ false ”。

这也可能是对包含此类型值的资源(格式为“ @[package:]type:name ”)或主题属性(格式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 cropToPadding

相关方法:

android:maxHeight

为此视图提供最大高度的可选参数。 有关详细信息,请参阅{请参阅android.widget.ImageView#setMaxHeight}。

必须是一个维度值,它是一个浮点数,后面跟着一个单位,例如“ 14.5sp ”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 maxHeight

相关方法:

android:maxWidth

为此视图提供最大宽度的可选参数。 有关详细信息,请参阅{请参阅android.widget.ImageView#setMaxWidth}。

必须是一个维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp ”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 maxWidth

相关方法:

android:scaleType

控制如何调整图像的大小或移动以匹配此ImageView的大小。 ImageView.ScaleType

必须是下列常数值之一。

Constant Value 描述
matrix 0 Scale using the image matrix when drawing. See setImageMatrix(Matrix).
fitXY 1 Scale the image using FILL.
fitStart 2 Scale the image using START.
fitCenter 3 Scale the image using CENTER.
fitEnd 4 Scale the image using END.
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.

这对应于全局属性资源符号 scaleType

相关方法:

android:src

设置一个drawable作为这个ImageView的内容。

可能是另一种资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

可以是“ #rgb ”,“ #argb ”,“ #rrggbb ”或“ #aarrggbb ”形式的颜色值。

这对应于全局属性资源符号 src

相关方法:

android:tint

为图像设置着色。 默认情况下,色调将使用SRC_ATOP模式混合。

必须是“ #rgb ”,“ #argb ”,“ #rrggbb ”或“ #aarrggbb ”形式的颜色值。

这也可能是对包含此类型值的资源(格式为“ @[package:]type:name ”)或主题属性(格式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 tint

相关方法:

android:tintMode

混合模式用于应用图像色调。

必须是下列常数值之一。

Constant Value 描述
src_over 3 The tint is drawn on top of the drawable. [Sa + (1 - Sa)*Da, Rc = Sc + (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_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]
multiply 14 Multiplies the color and alpha channels of the drawable with those of the tint. [Sa * Da, Sc * Dc]
screen 15 [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc]
add 16 Combines the tint and drawable color and alpha channels, clamping the result to valid color values. Saturate(S + D)

这对应于全局属性资源符号 tintMode

相关方法:

Public constructors

ImageView

Added in API level 1
ImageView (Context context)

Parameters
context Context

ImageView

Added in API level 1
ImageView (Context context, 
                AttributeSet attrs)

Parameters
context Context
attrs AttributeSet

ImageView

Added in API level 1
ImageView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Parameters
context Context
attrs AttributeSet
defStyleAttr int

ImageView

Added in API level 21
ImageView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                int defStyleRes)

Parameters
context Context
attrs AttributeSet
defStyleAttr int
defStyleRes int

Public methods

clearColorFilter

Added in API level 1
void clearColorFilter ()

drawableHotspotChanged

Added in API level 21
void drawableHotspotChanged (float x, 
                float y)

只要视图热点更改并需要将其传播到视图管理的可绘制视图或子视图,就会调用此函数。

调度到子视图由 dispatchDrawableHotspotChanged(float, float)处理。

重写此功能时,一定要调用超类。

Parameters
x float: hotspot x coordinate
y float: hotspot y coordinate

getAccessibilityClassName

Added in API level 23
CharSequence getAccessibilityClassName ()

返回此对象的类名称以用于辅助功能。 如果子类正在实现的东西应该被视为一个全新的视图类,当它被可访问性使用时,子类只应该覆盖这个子类,与它所源自的类无关。 这用于填写AccessibilityNodeInfo.setClassName

Returns
CharSequence

getAdjustViewBounds

Added in API level 16
boolean getAdjustViewBounds ()

当ImageView正在调整其边界以保留其可绘制的纵横比时为真

相关XML属性:

Returns
boolean whether to adjust the bounds of this view to preserve the original aspect ratio of the drawable

也可以看看:

getBaseline

Added in API level 1
int getBaseline ()

从小部件的顶部边界返回小部件文本基线的偏移量。

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
boolean getBaselineAlignBottom ()

返回这个视图的基线是否被视为视图的底部。

Returns
boolean

也可以看看:

getColorFilter

Added in API level 16
ColorFilter getColorFilter ()

返回此ImageView的活动颜色过滤器。

Returns
ColorFilter the active color filter for this ImageView

也可以看看:

getCropToPadding

Added in API level 16
boolean getCropToPadding ()

返回此ImageView是否剪裁为填充。

相关XML属性:

Returns
boolean whether this ImageView crops to padding

也可以看看:

getDrawable

Added in API level 1
Drawable getDrawable ()

返回视图的drawable,如果没有drawable被赋值,则返回null。

Returns
Drawable

getImageAlpha

Added in API level 16
int getImageAlpha ()

返回将应用于此ImageView的drawable的alpha。

Returns
int the alpha that will be applied to the drawable of this ImageView

也可以看看:

getImageMatrix

Added in API level 1
Matrix getImageMatrix ()

返回视图的可选矩阵。 这是绘制时应用于视图的drawable。 如果没有矩阵,这个方法将返回一个单位矩阵。 不要改变这个矩阵,而是复制一份。 如果你想要一个不同的矩阵应用于drawable,一定要调用setImageMatrix()。

Returns
Matrix

getImageTintList

Added in API level 21
ColorStateList getImageTintList ()

相关XML属性:

Returns
ColorStateList the tint applied to the image drawable

也可以看看:

getImageTintMode

Added in API level 21
PorterDuff.Mode getImageTintMode ()

相关XML属性:

Returns
PorterDuff.Mode the blending mode used to apply the tint to the image drawable

也可以看看:

getMaxHeight

Added in API level 16
int getMaxHeight ()

这个视图的最大高度。

相关XML属性:

Returns
int The maximum height of this view

也可以看看:

getMaxWidth

Added in API level 16
int getMaxWidth ()

这个视图的最大宽度。

相关XML属性:

Returns
int The maximum width of this view

也可以看看:

getScaleType

Added in API level 1
ImageView.ScaleType getScaleType ()

返回此ImageView使用的当前比例类型。

相关XML属性:

Returns
ImageView.ScaleType

也可以看看:

hasOverlappingRendering

Added in API level 16
boolean hasOverlappingRendering ()

返回此视图是否包含重叠的内容。

打算被特定视图类型覆盖的此函数是在视图上设置alpha时的优化。 如果渲染在alpha <1的视图中重叠,则该视图将被拖到屏幕外的缓冲区,然后合成到位,这可能很昂贵。 如果视图没有重叠的渲染,视图可以直接用适当的alpha值绘制每个基元。 重叠渲染的一个例子是带有背景图像的TextView,例如Button。 非重叠渲染的一个例子是没有背景的TextView或只有前景图像的ImageView。 默认实现返回true; 如果子类有可以优化的情况,子类应该重写。

当前实现在saveLayer和saveLayerAlpha方法 Canvas必要,一个视图,如果它使用的方法在内部,而没有经过返回true CLIP_TO_LAYER_SAVE_FLAG

注意:如果在此视图上调用了 forceHasOverlappingRendering(boolean) ,则此方法的返回值将被忽略。

Returns
boolean true if the content in this view might overlap, false otherwise.

invalidateDrawable

Added in API level 1
void invalidateDrawable (Drawable dr)

使指定的Drawable无效。

Parameters
dr Drawable: the drawable to invalidate

isOpaque

Added in API level 7
boolean isOpaque ()

指示此视图是否不透明。 不透明视图保证它将使用完全不透明的颜色绘制所有像素重叠的边界。 视图的子类应尽可能覆盖此方法,以指示实例是否不透明。 不透明视图被视图层次以特殊方式处理,可能允许它在无效/绘制过程中执行优化。

Returns
boolean True if this View is guaranteed to be fully opaque, false otherwise.

jumpDrawablesToCurrentState

Added in API level 11
void jumpDrawablesToCurrentState ()

在与此视图关联的所有可绘制对象上调用 Drawable.jumpToCurrentState()

如果有一个StateListAnimator附加到这个视图,也调用 jumpToCurrentState()

onCreateDrawableState

Added in API level 1
int[] onCreateDrawableState (int extraSpace)

为此视图生成新的Drawable状态。 当缓存的Drawable状态被确定为无效时,这由视图系统调用。 要检索当前状态,您应该使用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
void onRtlPropertiesChanged (int layoutDirection)

当任何RTL属性(布局方向或文本方向或文本对齐)已被更改时调用。 子类需要重写此方法以处理依赖于已解析布局方向的缓存信息,或通知继承其布局方向的子视图。 默认实现什么都不做。

Parameters
layoutDirection int: the direction of the layout

onVisibilityAggregated

Added in API level 24
void onVisibilityAggregated (boolean isVisible)

当此视图的用户可见性可能受到对此视图本身,祖先视图或此视图所附窗口的更改的影响时调用。

Parameters
isVisible boolean: true if this view and all of its ancestors are VISIBLE and this view's window is also visible

setAdjustViewBounds

Added in API level 1
void setAdjustViewBounds (boolean adjustViewBounds)

如果您希望ImageView调整其边界以保持其可绘制的高宽比,请将其设置为true。

注意:如果应用程序的目标API等级为17或更低,adjustViewBounds将允许drawable缩小视图边界,但不会增长以在所有情况下填充可用的测量空间。 这是为了与传统的MeasureSpecRelativeLayout行为兼容。

相关XML属性:

Parameters
adjustViewBounds boolean: Whether to adjust the bounds of this view to preserve the original aspect ratio of the drawable.

也可以看看:

setAlpha

Added in API level 1
void setAlpha (int alpha)

此方法在API级别16中已被弃用。
改用#setImageAlpha(int)

设置应该应用于图像的Alpha值。

Parameters
alpha int: the alpha value that should be applied to the image

setBaseline

Added in API level 11
void setBaseline (int baseline)

从小部件的顶部边界设置小部件文本基线的偏移量。 该值由setBaselineAlignBottom(boolean)属性覆盖。

相关XML属性:

Parameters
baseline int: The baseline to use, or -1 if none is to be provided.

也可以看看:

setBaselineAlignBottom

Added in API level 11
void setBaselineAlignBottom (boolean aligned)

设置是否将此视图的基线设置为视图的底部。 设置此值将覆盖对setBaseline的任何调用。

相关XML属性:

Parameters
aligned boolean: If true, the image view will be baseline aligned with based on its bottom edge.

setColorFilter

Added in API level 1
void setColorFilter (int color, 
                PorterDuff.Mode mode)

为图像设置着色选项。

相关XML属性:

Parameters
color int: Color tint to apply.
mode PorterDuff.Mode: How to apply the color. The standard mode is SRC_ATOP

setColorFilter

Added in API level 1
void setColorFilter (ColorFilter cf)

对图像应用任意颜色过滤器。

Parameters
cf ColorFilter: the colorfilter to apply (may be null)

也可以看看:

setColorFilter

Added in API level 8
void setColorFilter (int color)

为图像设置着色选项。 假设SRC_ATOP混合模式。

相关XML属性:

Parameters
color int: Color tint to apply.

setCropToPadding

Added in API level 16
void setCropToPadding (boolean cropToPadding)

设置此ImageView是否会裁剪为填充。

相关XML属性:

Parameters
cropToPadding boolean: whether this ImageView will crop to padding

也可以看看:

setImageAlpha

Added in API level 16
void setImageAlpha (int alpha)

设置应该应用于图像的Alpha值。

Parameters
alpha int: the alpha value that should be applied to the image

也可以看看:

setImageBitmap

Added in API level 1
void setImageBitmap (Bitmap bm)

将Bitmap设置为此ImageView的内容。

Parameters
bm Bitmap: The bitmap to set

setImageDrawable

Added in API level 1
void setImageDrawable (Drawable drawable)

设置一个drawable作为这个ImageView的内容。

Parameters
drawable Drawable: the Drawable to set, or null to clear the content

setImageIcon

Added in API level 23
void setImageIcon (Icon icon)

将此ImageView的内容设置为指定的图标。

根据Icon类型的不同,这可能会在UI线程上执行位图读取和解码操作,从而导致用户界面无法使用。 如果这是一个问题,可以考虑使用loadDrawableAsync(Context, Icon.OnDrawableLoadedListener, Handler) ,然后setImageDrawable(android.graphics.drawable.Drawable)代替。

Parameters
icon Icon: an Icon holding the desired image, or null to clear the content

setImageLevel

Added in API level 1
void setImageLevel (int level)

设置图像级别,当它由 LevelListDrawable

Parameters
level int: The new level for the image.

setImageMatrix

Added in API level 1
void setImageMatrix (Matrix matrix)

添加绘制时应用于视图可绘制对象的变换Matrix 允许自定义缩放,翻译和透视失真。

Parameters
matrix Matrix: the transformation parameters in matrix form

setImageResource

Added in API level 1
void setImageResource (int resId)

设置一个drawable作为这个ImageView的内容。

这会在UI线程上进行位图读取和解码,这会导致延迟打嗝。 如果这是一个问题,请考虑使用setImageDrawable(android.graphics.drawable.Drawable)setImageBitmap(android.graphics.Bitmap)BitmapFactory

相关XML属性:

Parameters
resId int: the resource identifier of the drawable

setImageState

Added in API level 1
void setImageState (int[] state, 
                boolean merge)

Parameters
state int
merge boolean

setImageTintList

Added in API level 21
void setImageTintList (ColorStateList tint)

将图像应用于可绘制图像。 不会修改当前着色模式,默认为SRC_IN

随后对 setImageDrawable(Drawable)调用将自动改变drawable,并使用 setTintList(ColorStateList)应用指定的色调和色调模式。

相关XML属性:

Parameters
tint ColorStateList: the tint to apply, may be null to clear tint

也可以看看:

setImageTintMode

Added in API level 21
void setImageTintMode (PorterDuff.Mode tintMode)

指定用于将setImageTintList(ColorStateList) }指定的色调应用于图像可绘制的混合模式。 默认模式是SRC_IN

相关XML属性:

Parameters
tintMode PorterDuff.Mode: the blending mode used to apply the tint, may be null to clear tint

也可以看看:

setImageURI

Added in API level 1
void setImageURI (Uri uri)

将此ImageView的内容设置为指定的Uri。

这会在UI线程上进行位图读取和解码,这会导致延迟打嗝。 如果这是一个问题,请考虑使用setImageDrawable(Drawable)setImageBitmap(android.graphics.Bitmap)BitmapFactory

Parameters
uri Uri: the Uri of an image, or null to clear the content

setMaxHeight

Added in API level 1
void setMaxHeight (int maxHeight)

为此视图提供最大高度的可选参数。 只有当setAdjustViewBounds(boolean)设置为true时才有效。 要在保留原始高宽比的情况下将图像设置为最大100 x 100,请执行以下操作:1)将adjustViewBounds设置为true 2)将maxWidth和maxHeight设置为100 3)将高度和宽度布局参数设置为WRAP_CONTENT。

请注意,如果原始图像很小,则此视图仍可能小于100 x 100。 要将图像设置为固定大小,请在布局参数中指定该大小,然后使用setScaleType(android.widget.ImageView.ScaleType)来确定如何将图像放在边界内。

相关XML属性:

Parameters
maxHeight int: maximum height for this view

也可以看看:

setMaxWidth

Added in API level 1
void setMaxWidth (int maxWidth)

为此视图提供最大宽度的可选参数。 仅当setAdjustViewBounds(boolean)已设置为true时才有效。 要在保留原始高宽比的情况下将图像设置为最大100 x 100,请执行以下操作:1)将adjustViewBounds设置为true 2)将maxWidth和maxHeight设置为100 3)将高度和宽度布局参数设置为WRAP_CONTENT。

请注意,如果原始图像很小,则此视图仍可能小于100 x 100。 要将图像设置为固定大小,请在布局参数中指定该大小,然后使用setScaleType(android.widget.ImageView.ScaleType)来确定如何将图像放在边界内。

相关XML属性:

Parameters
maxWidth int: maximum width for this view

也可以看看:

setScaleType

Added in API level 1
void setScaleType (ImageView.ScaleType scaleType)

控制如何调整图像的大小或移动以匹配此ImageView的大小。

相关XML属性:

Parameters
scaleType ImageView.ScaleType: The desired scaling mode.

setSelected

Added in API level 1
void setSelected (boolean selected)

更改此视图的选择状态。 视图可以被选择或不被选择。 请注意,选择与焦点不同。 视图通常在AdapterView(如ListView或GridView)的上下文中选择; 所选视图是突出显示的视图。

Parameters
selected boolean: true if the view must be selected, false otherwise

Protected methods

drawableStateChanged

Added in API level 1
void drawableStateChanged ()

只要视图的状态发生变化,就会调用此函数,使得它影响所显示的可绘制状态。

如果View有一个StateListAnimator,它也将被调用来运行必要的状态改变动画。

重写此功能时,一定要调用超类。

onDraw

Added in API level 1
void onDraw (Canvas canvas)

实施这个来做你的绘画。

Parameters
canvas Canvas: the canvas on which the background will be drawn

onMeasure

Added in API level 1
void onMeasure (int widthMeasureSpec, 
                int heightMeasureSpec)

测量视图及其内容以确定测量宽度和测量高度。 此方法由measure(int, int)调用, measure(int, int)子类覆盖以提供其内容的准确和有效的度量。

合同:覆盖此方法时, 必须致电setMeasuredDimension(int, int)来存储此视图的测量宽度和高度。 不这样做将触发IllegalStateException ,由measure(int, int)引发。 调用超类' onMeasure(int, int)是一种有效的用法。

Measure的基类实现默认为背景大小,除非MeasureSpec允许更大的大小。 子类应该覆盖onMeasure(int, int)以提供更好的内容度量。

如果此方法被覆盖,则子类的责任是确保测量的高度和宽度至少为视图的最小高度和宽度( getSuggestedMinimumHeight()getSuggestedMinimumWidth() )。

Parameters
widthMeasureSpec int: horizontal space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.
heightMeasureSpec int: vertical space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.

setFrame

Added in API level 1
boolean setFrame (int l, 
                int t, 
                int r, 
                int b)

为此视图分配大小和位置。 这是从布局调用的。

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
boolean verifyDrawable (Drawable dr)

如果你的视图子类正在显示它自己的Drawable对象,它应该覆盖这个函数,并且对于它显示的任何Drawable返回true。 这样可以安排这些可绘制的动画。

重写此功能时,一定要调用超类。

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.
Returns
boolean boolean If true than the Drawable is being displayed in the view; else false and it is not allowed to animate.

Hooray!