Android自定义View
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android高手进阶教程(三)之----Android 中自定义View的应用. 2010-04-18 21:11:25
标签:Android进阶View定义教程
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。/1556324/311457
大家好我们今天的教程是在Android 教程中自定义View 的学习,对于初学着来说,他们习
惯了Android 传统的页面布局方式,如下代码:
view plaincopy to clipboardprint?
1.
2. 3. android:orientation="vertical" 4. android:layout_width="fill_parent" 5. android:layout_height="fill_parent" 6. > 7. 8. android:layout_width="fill_parent" 9. android:layout_height="wrap_content" 10. android:text="@string/hello" 11. /> 12.
13.
14. 15. android:orientation="vertical" 16. android:layout_width="fill_parent" 17. android:layout_height="fill_parent" 18. > 19. 20. android:layout_width="fill_parent" 21. android:layout_height="wrap_content" 22. android:text="@string/hello" 23. /> 24.
当然上面的布局方式可以帮助我们完成简单应用的开发了,但是如果你想写一个复杂的应用,这样就有点牵强了,大家不信可以下源码都研究看看,高手写的布局方式,如上面的布局高手通常是这样写的:
view plaincopy to clipboardprint?
1.
3.
4.
5.
7.
8.
view plaincopy to clipboardprint?
其中A extends LinerLayout, B extends TextView.
其中A extends LinerLayout, B extends TextView.
为了帮助大家更容易理解,我写了一个简单的Demo ,具体步骤如下:
首先新建一个Android 工程命名为ViewDemo .
然后自定义一个View 类,命名为MyView(extends View) .代码如下:
1.view plaincopy to clipboardprint?
2.package com.android.tutor;
3.import android.content.Context;
4.import android.graphics.Canvas;
5.import android.graphics.Color;
6.import android.graphics.Paint;
7.import android.graphics.Rect;
8.import android.graphics.Paint.Style;
9.import android.util.AttributeSet;
10.i mport android.view.View;
11.p ublic class MyView extends View {
12. private Paint mPaint;
13. private Context mContext;
;
15.
16. public MyView(Context context) {
17. super(context);
18.
19. }
20. public MyView(Context context,AttributeSet attr)
21. {
22. super(context,attr);
23.
24. }
25. @Override
26. protected void onDraw(Canvas canvas) {
27. // TODO Auto-generated method stub
28. super.onDraw(canvas);
29.
30. mPaint = new Paint();
31.
32. //设置画笔颜色
33. mPaint.setColor(Color.RED);
34. //设置填充
35. mPaint.setStyle(Style.FILL);
36.
37. //画一个矩形,前俩个是矩形左上角坐标,后面俩个是右下角坐标
38. canvas.drawRect(new Rect(10, 10, 100, 100), mPaint);
39.
40. mPaint.setColor(Color.BLUE);
41. //绘制文字
42. canvas.drawText(mString, 10, 110, mPaint);
43. }
44.}
45.p ackage com.android.tutor;
46.i mport android.content.Context;
47.i mport android.graphics.Canvas;
48.i mport android.graphics.Color;
49.i mport android.graphics.Paint;
50.i mport android.graphics.Rect;
51.i mport android.graphics.Paint.Style;
52.i mport android.util.AttributeSet;
53.i mport android.view.View;
54.p ublic class MyView extends View {
55.private Paint mPaint;
56.private Context mContext;