1.在res中new一个class继承view.View,重写ondraw方法,写出自己的view
1 package com.zzw.myView;
2
3 import android.content.Context;
4 import android.graphics.Canvas;
5 import android.graphics.Color;
6 import android.graphics.Paint;
7 import android.util.AttributeSet;
8 import android.view.View;
9
10 public class MyView extends View {
11 private Paint paint;
12
13 // 如果以后这个自定义的view需要被java代码操作就用这个构造方法
14 public MyView(Context context) {
15 super(context);
16 }
17
18 // 如果以后这个自定义的view仅仅是在xml中静态摆放就用这个构造方法
19 // 如果两者都需要,可以同时建立这两个构造方法
20 public MyView(Context context, AttributeSet attrs) {
21 super(context, attrs);
22 // 初始化画笔
23 paint = new Paint();
24 }
25
26 @Override
27 protected void onDraw(Canvas canvas) {
28 super.onDraw(canvas);
29
30 paint.setColor(Color.RED);// 设置画笔颜色
31 canvas.drawRect(5, 5, 200, 200, paint);// 绘制左上角为(5,5),长宽为200的矩形
32
33 paint.setColor(Color.GREEN);
34 paint.setTextSize(30);
35 canvas.drawText("hello,world", 5, 250, paint);
36 }
37
38 }
2.在要显示的xml文件中
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 tools:context="com.zzw.myView.MainActivity" > 6 <!-- 用包名.类名(自定义的view类) --> 7 <com.zzw.myView.MyView 8 android:layout_width="wrap_content" 9 android:layout_height="match_parent" /> 10 11 </RelativeLayout>
3.调用该xml
1 package com.zzw.myView;
2
3 import android.app.Activity;
4 import android.os.Bundle;
5
6
7 public class MainActivity extends Activity {
8
9 @Override
10 protected void onCreate(Bundle savedInstanceState) {
11 super.onCreate(savedInstanceState);
12 setContentView(R.layout.activity_main);
13 }
14
15 }
结果如图: