小试view的执行过程,此是入门,高手绕道。
--------------------------------------------------------------------------------
此为抛砖引玉,个人看官自己发挥。
结果如下:
12-05 22:23:03.587: D/mDebug(9715): TestView context, attrs=@2131034112
12-05 22:23:03.597: D/mDebug(9715): onFinishInflate
12-05 22:23:03.667: D/mDebug(9715): onSizeChanged,w=240,h=282,oldw=0,oldh=0
12-05 22:23:03.727: D/mDebug(9715): onDraw
12-05 22:23:03.757: D/mDebug(9715): onDraw
[size=l代码如下:[/size]
public class TestView extends View {
public TestView(Context context) {
super(context);
Log.d("mDebug", "TestView context");
}
public TestView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
Log.d("mDebug", "TestView context,attrs,defStyle attrs="+attrs.getAttributeValue(0));
}
public TestView(Context context, AttributeSet attrs) {
super(context, attrs);
Log.d("mDebug", "TestView context, attrs="+attrs.getAttributeValue(0));
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Log.d("mDebug", "onDraw");
}
@Override
protected void onFinishInflate() {
// TODO Auto-generated method stub
super.onFinishInflate();
Log.d("mDebug", "onFinishInflate");
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
// TODO Auto-generated method stub
super.onSizeChanged(w, h, oldw, oldh);
Log.d("mDebug", "onSizeChanged,w="+w+",h="+h+",oldw="+oldw+",oldh="+oldh);
}
}
问题: 构造函数的context为何物,attrs从何处来
看到这篇文章貌似解决了以上问题。
http://blog.csdn.net/z103594643/article/details/6755017
扩展地址:http://developer.android.com/reference/android/view/View.html
分享到:
相关推荐
在Android开发中,`onDraw()`方法是View类的一个关键回调方法,用于绘制自定义视图的图形内容。当你创建一个自定义View并期望在屏幕上看到任何可视元素时,`onDraw()`是至关重要的。然而,有时候我们可能会遇到`...
然后,Android的视图系统会调用`onDraw()`来执行实际的绘制操作。在绘制完成后,如果View需要再次更新,`onDraw()`会被再次调用,形成一个循环。 在自定义View时,你需要覆写`onDraw()`方法,并在其内部实现自己的...
Android 中 View.onDraw(Canvas canvas) 的使用方法 Android 中的 View.onDraw(Canvas canvas) 是一个非常重要的方法, 它是所有 View 组件的绘制入口。通过重载这个方法,可以实现自定义的绘制逻辑。在 Android ...
Android系统通过`onDraw()`方法来绘制View,而`onLayout()`方法用于确定子View的位置。在拖动过程中,我们需要更新View的位置并重绘,确保用户看到的是最新的状态。但是,如果这个过程处理不当,可能会导致屏幕闪烁...
Android 的自定义 View 为开发者定义和使用个性化的 View 提供了很好的支持,想要使用自己定义的 View,需要继承 View 类,并重写构造函数和 onDraw() 函数。onDraw 函数在界面刷新时会被调用,通过线程控制可以...
Android自定义View绘制的方法及过程是Android开发中非常重要的一部分,本文将详细介绍Android自定义View绘制的方法及过程,包括onSizeChanged、onDraw、onMeasure顺序的解释。 在Android中,自定义View的绘制过程...
在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的UI组件。本项目"Android 自定义View实现水平温度计"就是这样一个实例,它通过自定义View来展示一个水平方向的温度计,...
首先,我们要了解Android视图的生命周期,其中绘制过程包括`onMeasure()`, `onLayout()`, 和 `onDraw()`三个主要步骤。这些方法在Activity的`onCreate()`之后被调用,当需要更新界面时,系统会重新测量、布局和绘制...
本文将详细解析Android自定义View的过程,从基础到进阶,帮助开发者掌握自定义View的核心技术。 首先,我们从创建自定义View开始。在Android中,自定义View通常意味着从`View`类或其子类(如`TextView`, `ImageView...
4. `onDraw()`:这是绘制阶段,View会调用`onDraw()`来渲染内容到屏幕上。开发者可以重写这个方法来自定义View的外观。 5. `onAttachedToWindow()`和`onDetachedFromWindow()`:当View添加到窗口(如Activity或...
本示例将详细讲解如何通过`onDraw()`在Android的View中实现绘图。 首先,我们需要创建一个新的Activity,例如`AndroidTest`,并在`onCreate()`方法中实例化我们的自定义View,然后将其设置为布局内容。代码如下: ...
在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的用户界面。这个“android 自定义view比较综合的例子”显然涵盖了多个高级话题,旨在帮助有一定基础的开发者提升自定义...
在Android开发中,View是界面元素的基础,它构成了用户与应用程序交互的核心部分。"android View下的继承关系"这个主题深入探讨了Android视图系统中View类及其子类的层次结构,帮助开发者理解如何构建和定制用户界面...
在Android开发中,自定义View是一种常见的需求,用于实现特定的视觉效果或功能。本教程将探讨如何通过自定义View来实现水印效果,让应用能够在屏幕上动态地展示自定义的文字水印。水印通常用于保护版权或者增加信息...
在Android中,自定义View是通过继承View或者ViewGroup类并重写其onDraw()方法来实现的。在这个项目中,你需要创建一个新的View类,包含绘制图片、应用高斯模糊和设置毛玻璃效果的方法。关键步骤包括: 1. 初始化:...
在Android开发中,有时我们需要将View的显示内容截图并保存为Bitmap,以便进行分享或者其他图形处理操作。这个过程涉及到Android的视图系统、图形处理以及文件存储等多个知识点。以下将详细讲解如何实现这一功能。 ...
在Android开发中,自定义View是一项常见的任务,它允许开发者根据特定需求创建具有独特功能和交互的视图组件。本文将深入探讨Android View中的原点坐标相关问题,这对于理解和优化自定义View的绘制至关重要。 首先...
这个过程会重新执行上述的测量、布局和绘制三个步骤。`invalidate()`可以接受一个Rect参数,用来指定需要重绘的区域,如果不传参数,则默认为整个View。 `invalidate()`的内部实现会调用`postInvalidate()`,如果...