转载:http://lovewf.blog.51cto.com/1723922/723632

首先自定义一个最简单的View

1、文件MainActivity 
public class MainActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new HelloView(this)); // 使用自定义的View
    }
}

2、文件HelloView 
public class HelloView extends View {

    public HelloView(Context context){
       super(context);
    }
    protected void onDraw(Canvas canvas){
       canvas.drawColor(Color.BLUE);
    }
}

   既然使用onDraw可以绘制为蓝色背景,那我们是不是可以干一些坏事了,哈哈。。。。。

   不过干坏事之前要记得先学习学习graphics里面的一些知识。

一、基础预备知识

1、Canvas--画板
  Canvas是一个大大的画板,这个画板有多大,就看Android系统能支持多大的Canvas了,以后慢慢就会体会到这个Canvas到底有多大,不过原理上:Canvas是无穷大的。
 
2、Paint--画笔
   有画板没有画笔怎么能行了,没错Paint就是画笔。掌管Android王国中的所有画笔,只要和Canvas打交道,没有画笔是万万不行的。。。。。。
 
3、Color--颜色
   在这个设计的世界里,没有颜色掌管各种颜色怎么行呢,所以这里定义了各种常用的颜色,嘎嘎,还提供了灵活的Color.parseColor(String str);函数这个函数太强大了,哈哈,解析Alpha颜色和普通的颜色。

4、Bitmap--位图
   没有图片的世界是悲惨的,这个类可以掌管天下的png和jpg图片,不过貌似Android对png支持比jpg好。呵呵,这个我们在下回研究,我们会使用三种方法获得Drawable文件夹下的图片
 
再实现一个带文字的自定义View
public class MyView extends View{
    
    Paint paint;  //定义一个画笔
    public MyView(Context context){
       super(context);
    }
    
    // 初始化画笔
    public void intiPaint(){
        paint = new Paint();
        // 设置画笔
        paint.setColor(Color.GREEN);    // 绿色画笔
        paint.setAntiAlias(true);       // 打开抗锯齿
        paint.setTextSize(15);          // 设置字体大小
    }
    
    protected void onDraw(Canvas canvas){
       canvas.drawColor(Color.WHITE);
       intiPaint();
       canvas.drawText("318川藏线", 20, 50, paint);
    }