Android自定义View

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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.

2.

3.

4.

5.

6.

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;

相关文档
最新文档