public class ImageView
extends View
java.lang.Object | ||
↳ | android.view.View | |
↳ | android.widget.ImageView |
Known Direct Subclasses |
Known Indirect Subclasses |
显示任意图像,如图标。 ImageView类可以加载来自各种来源(如资源或内容提供者)的图像,负责从图像计算其测量值,以便它可以在任何布局管理器中使用,并提供各种显示选项,如缩放和着色。
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() 在与此视图关联的所有可绘制对象上调用 |
int[] |
onCreateDrawableState(int extraSpace) 为此视图生成新的 |
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) 设置图像级别,当它由 |
void |
setImageMatrix(Matrix matrix) 添加绘制时应用于视图可绘制对象的变换 |
void |
setImageResource(int resId) 设置一个drawable作为这个ImageView的内容。 |
void |
setImageState(int[] state, boolean merge) |
void |
setImageTintList(ColorStateList tint) 将图像应用于可绘制图像。 |
void |
setImageTintMode(PorterDuff.Mode tintMode) 指定用于将 |
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
|
如果您希望ImageView调整其边界以保持其可绘制的高宽比,请将其设置为true。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 adjustViewBounds
。
相关方法:
该视图中的基线偏移量。 有关详细信息,请参阅{请参阅android.view.View#getBaseline}
必须是维度值,该维度值是附加了单位(例如“ 14.5sp
”)的14.5sp
。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 baseline
。
相关方法:
如果为true,则图像视图将基于其底部边缘进行基线对齐。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 baselineAlignBottom
。
相关方法:
如果为true,则图像将被裁剪以适应其填充。
必须是布尔值,“ true
”或“ false
”。
这也可能是对包含此类型值的资源(格式为“ @[package:]type:name
”)或主题属性(格式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 cropToPadding
。
相关方法:
为此视图提供最大高度的可选参数。 有关详细信息,请参阅{请参阅android.widget.ImageView#setMaxHeight}。
必须是一个维度值,它是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 maxHeight
。
相关方法:
为此视图提供最大宽度的可选参数。 有关详细信息,请参阅{请参阅android.widget.ImageView#setMaxWidth}。
必须是一个维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 maxWidth
。
相关方法:
控制如何调整图像的大小或移动以匹配此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
。
相关方法:
设置一个drawable作为这个ImageView的内容。
可能是另一种资源的引用,其形式为“ @[+][package:]type:name
”,或者其形式为“一个主题属性 ?[package:][type:]name
”。
可以是“ #rgb
”,“ #argb
”,“ #rrggbb
”或“ #aarrggbb
”形式的颜色值。
这对应于全局属性资源符号 src
。
相关方法:
为图像设置着色。 默认情况下,色调将使用SRC_ATOP模式混合。
必须是“ #rgb
”,“ #argb
”,“ #rrggbb
”或“ #aarrggbb
”形式的颜色值。
这也可能是对包含此类型值的资源(格式为“ @[package:]type:name
”)或主题属性(格式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 tint
。
相关方法:
混合模式用于应用图像色调。
必须是下列常数值之一。
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
。
相关方法:
ImageView (Context context, AttributeSet attrs)
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
ImageView (Context context, AttributeSet attrs, int defStyleAttr)
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
defStyleAttr |
int
|
ImageView (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
defStyleAttr |
int
|
defStyleRes |
int
|
void drawableHotspotChanged (float x, float y)
只要视图热点更改并需要将其传播到视图管理的可绘制视图或子视图,就会调用此函数。
调度到子视图由 dispatchDrawableHotspotChanged(float, float)
处理。
重写此功能时,一定要调用超类。
Parameters | |
---|---|
x |
float : hotspot x coordinate |
y |
float : hotspot y coordinate |
CharSequence getAccessibilityClassName ()
返回此对象的类名称以用于辅助功能。 如果子类正在实现的东西应该被视为一个全新的视图类,当它被可访问性使用时,子类只应该覆盖这个子类,与它所源自的类无关。 这用于填写AccessibilityNodeInfo.setClassName
。
Returns | |
---|---|
CharSequence |
boolean getAdjustViewBounds ()
当ImageView正在调整其边界以保留其可绘制的纵横比时为真
相关XML属性:
Returns | |
---|---|
boolean |
whether to adjust the bounds of this view to preserve the original aspect ratio of the drawable |
也可以看看:
int getBaseline ()
从小部件的顶部边界返回小部件文本基线的偏移量。
Returns | |
---|---|
int |
the offset of the baseline within the widget's bounds or -1 if baseline alignment is not supported. |
boolean getBaselineAlignBottom ()
返回这个视图的基线是否被视为视图的底部。
Returns | |
---|---|
boolean |
ColorFilter getColorFilter ()
返回此ImageView的活动颜色过滤器。
Returns | |
---|---|
ColorFilter |
the active color filter for this ImageView |
boolean getCropToPadding ()
返回此ImageView是否剪裁为填充。
相关XML属性:
Returns | |
---|---|
boolean |
whether this ImageView crops to padding |
也可以看看:
Drawable getDrawable ()
返回视图的drawable,如果没有drawable被赋值,则返回null。
Returns | |
---|---|
Drawable |
int getImageAlpha ()
返回将应用于此ImageView的drawable的alpha。
Returns | |
---|---|
int |
the alpha that will be applied to the drawable of this ImageView |
也可以看看:
Matrix getImageMatrix ()
返回视图的可选矩阵。 这是绘制时应用于视图的drawable。 如果没有矩阵,这个方法将返回一个单位矩阵。 不要改变这个矩阵,而是复制一份。 如果你想要一个不同的矩阵应用于drawable,一定要调用setImageMatrix()。
Returns | |
---|---|
Matrix |
ColorStateList getImageTintList ()
相关XML属性:
Returns | |
---|---|
ColorStateList |
the tint applied to the image drawable |
PorterDuff.Mode getImageTintMode ()
相关XML属性:
Returns | |
---|---|
PorterDuff.Mode |
the blending mode used to apply the tint to the image drawable |
int getMaxHeight ()
这个视图的最大高度。
相关XML属性:
Returns | |
---|---|
int |
The maximum height of this view |
也可以看看:
int getMaxWidth ()
这个视图的最大宽度。
相关XML属性:
Returns | |
---|---|
int |
The maximum width of this view |
也可以看看:
ImageView.ScaleType getScaleType ()
返回此ImageView使用的当前比例类型。
相关XML属性:
Returns | |
---|---|
ImageView.ScaleType |
也可以看看:
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. |
void invalidateDrawable (Drawable dr)
使指定的Drawable无效。
Parameters | |
---|---|
dr |
Drawable : the drawable to invalidate |
boolean isOpaque ()
指示此视图是否不透明。 不透明视图保证它将使用完全不透明的颜色绘制所有像素重叠的边界。 视图的子类应尽可能覆盖此方法,以指示实例是否不透明。 不透明视图被视图层次以特殊方式处理,可能允许它在无效/绘制过程中执行优化。
Returns | |
---|---|
boolean |
True if this View is guaranteed to be fully opaque, false otherwise. |
void jumpDrawablesToCurrentState ()
在与此视图关联的所有可绘制对象上调用 Drawable.jumpToCurrentState()
。
如果有一个StateListAnimator附加到这个视图,也调用 jumpToCurrentState()
。
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. |
void onRtlPropertiesChanged (int layoutDirection)
当任何RTL属性(布局方向或文本方向或文本对齐)已被更改时调用。 子类需要重写此方法以处理依赖于已解析布局方向的缓存信息,或通知继承其布局方向的子视图。 默认实现什么都不做。
Parameters | |
---|---|
layoutDirection |
int : the direction of the layout |
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 |
void setAdjustViewBounds (boolean adjustViewBounds)
如果您希望ImageView调整其边界以保持其可绘制的高宽比,请将其设置为true。
注意:如果应用程序的目标API等级为17或更低,adjustViewBounds将允许drawable缩小视图边界,但不会增长以在所有情况下填充可用的测量空间。 这是为了与传统的MeasureSpec
和RelativeLayout
行为兼容。
相关XML属性:
Parameters | |
---|---|
adjustViewBounds |
boolean : Whether to adjust the bounds of this view to preserve the original aspect ratio of the drawable. |
也可以看看:
void setAlpha (int alpha)
此方法在API级别16中已被弃用。
改用#setImageAlpha(int)
设置应该应用于图像的Alpha值。
Parameters | |
---|---|
alpha |
int : the alpha value that should be applied to the image |
void setBaseline (int baseline)
从小部件的顶部边界设置小部件文本基线的偏移量。 该值由setBaselineAlignBottom(boolean)
属性覆盖。
相关XML属性:
Parameters | |
---|---|
baseline |
int : The baseline to use, or -1 if none is to be provided. |
也可以看看:
void setBaselineAlignBottom (boolean aligned)
设置是否将此视图的基线设置为视图的底部。 设置此值将覆盖对setBaseline的任何调用。
相关XML属性:
Parameters | |
---|---|
aligned |
boolean : If true, the image view will be baseline aligned with based on its bottom edge. |
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 |
void setColorFilter (ColorFilter cf)
对图像应用任意颜色过滤器。
Parameters | |
---|---|
cf |
ColorFilter : the colorfilter to apply (may be null) |
也可以看看:
void setColorFilter (int color)
为图像设置着色选项。 假设SRC_ATOP
混合模式。
相关XML属性:
Parameters | |
---|---|
color |
int : Color tint to apply. |
void setCropToPadding (boolean cropToPadding)
设置此ImageView是否会裁剪为填充。
相关XML属性:
Parameters | |
---|---|
cropToPadding |
boolean : whether this ImageView will crop to padding |
也可以看看:
void setImageAlpha (int alpha)
设置应该应用于图像的Alpha值。
Parameters | |
---|---|
alpha |
int : the alpha value that should be applied to the image |
也可以看看:
void setImageBitmap (Bitmap bm)
将Bitmap设置为此ImageView的内容。
Parameters | |
---|---|
bm |
Bitmap : The bitmap to set |
void setImageDrawable (Drawable drawable)
设置一个drawable作为这个ImageView的内容。
Parameters | |
---|---|
drawable |
Drawable : the Drawable to set, or null to clear the content |
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 |
void setImageLevel (int level)
设置图像级别,当它由 LevelListDrawable
。
Parameters | |
---|---|
level |
int : The new level for the image. |
void setImageMatrix (Matrix matrix)
添加绘制时应用于视图可绘制对象的变换Matrix
。 允许自定义缩放,翻译和透视失真。
Parameters | |
---|---|
matrix |
Matrix : the transformation parameters in matrix form |
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 |
void setImageState (int[] state, boolean merge)
Parameters | |
---|---|
state |
int
|
merge |
boolean
|
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 |
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 |
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 |
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 |
也可以看看:
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 |
也可以看看:
void setScaleType (ImageView.ScaleType scaleType)
控制如何调整图像的大小或移动以匹配此ImageView的大小。
相关XML属性:
Parameters | |
---|---|
scaleType |
ImageView.ScaleType : The desired scaling mode. |
void setSelected (boolean selected)
更改此视图的选择状态。 视图可以被选择或不被选择。 请注意,选择与焦点不同。 视图通常在AdapterView(如ListView或GridView)的上下文中选择; 所选视图是突出显示的视图。
Parameters | |
---|---|
selected |
boolean : true if the view must be selected, false otherwise |
void drawableStateChanged ()
只要视图的状态发生变化,就会调用此函数,使得它影响所显示的可绘制状态。
如果View有一个StateListAnimator,它也将被调用来运行必要的状态改变动画。
重写此功能时,一定要调用超类。
void onDraw (Canvas canvas)
实施这个来做你的绘画。
Parameters | |
---|---|
canvas |
Canvas : the canvas on which the background will be drawn |
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 . |
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 |
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. |