自定义View容易忽略的细节

自定义View不是很难

但是我个人认为对于初学者来说要注意一个问题:

 1 <?xml version="1.0" encoding="utf-8"?>  
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:orientation="vertical"
4 android:layout_width="fill_parent"
5 android:layout_height="fill_parent"
6 >
7 <TextView
8 android:layout_width="fill_parent"
9 android:layout_height="wrap_content"
10 android:text="@string/hello"
11 />
12 <com.sun.jia.MyView <!-- 跟随包名.类名-->
13 android:layout_width="fill_parent"
14 android:layout_height="fill_parent"
15 />
16 </LinearLayout>

  我之前就吃过这个亏 运行了半天还在找问题

 1 package com.sun.jia;  
2 import android.content.Context;
3 import android.graphics.Canvas;
4 import android.graphics.Color;
5 import android.graphics.Paint;
6 import android.graphics.Rect;
7 import android.graphics.Paint.Style;
8 import android.util.AttributeSet;
9 import android.view.View;
10 public class MyView extends View {
11 private Paint mPaint;
12 private Context mContext;
13 private static final String mString = " Hello World";
14
15 public MyView(Context context) {
16 super(context);
17
18 }
19 public MyView(Context context,AttributeSet attr)
20 {
21 super(context,attr);
22
23 }
24 @Override
25 protected void onDraw(Canvas canvas) {
26 // TODO Auto-generated method stub
27 super.onDraw(canvas);
28
29 mPaint = new Paint();
30
31 //设置画笔颜色
32 mPaint.setColor(Color.RED);
33 //设置填充
34 mPaint.setStyle(Style.FILL);
35
36 //画一个矩形,前俩个是矩形左上角坐标,后面俩个是右下角坐标
37 canvas.drawRect(new Rect(10, 10, 100, 100), mPaint);
38
39 mPaint.setColor(Color.BLUE);
40 //绘制文字
41 canvas.drawText(mString, 10, 110, mPaint);
42 }
43 }

  

posted @ 2011-08-11 14:55  水向东流  阅读(308)  评论(0编辑  收藏  举报