转载: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); }