转载请注明地址:http://blog.csdn.net/ethan_xue/article/details/7313788

ps: 可根据apidemo里LableView,list4,list6学习

文档在dev guide/Framework Topics/User Interface/Building Custom Components

自定义控件的步骤:

1 View的工作原理  2 编写View类  3 为View类增加属性  4 绘制屏幕  5 响应用户消息  6 自定义回调函数

不多说,主要是Canvas, Paint, Path

  1. public class CustomView1 extends View {
  2. private Paint mPaint;
  3. // private static final String mText = "drawText";
  4. private String mText = "drawText";
  5. public CustomView1(Context context, AttributeSet attrs) {
  6. super(context, attrs);
  7. }
  8. @Override
  9. protected void onDraw(Canvas canvas) {
  10. super.onDraw(canvas);
  11. mPaint = new Paint();
  12. mPaint.setColor(Color.BLUE);
  13. // FILL填充, STROKE描边,FILL_AND_STROKE填充和描边
  14. mPaint.setStyle(Style.FILL);
  15. canvas.drawRect(new Rect(10, 10, 100, 100), mPaint);// 画一个矩形
  16. mPaint.setColor(Color.GREEN);
  17. mPaint.setTextSize(35.0f);
  18. canvas.drawText(mText, 10, 60, mPaint);
  19. }
  20. }

布局

  1. <pre name="code" class="java"><?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. <ethan.customview1.CustomView1
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content"
  10. />
  11. </LinearLayout></pre><pre name="code" class="java"></pre>

效果图

注意,此时,在控件下放一个textView的话,是显示不出来的(TextView放在控件上面可以显示),以后再解决

下载地址 http://download.csdn.net/detail/ethan_xue/4108820

最新文章

  1. nginx中的超时设置
  2. javascript删除数组某个元素
  3. 2015-2016-2 《Java程序设计》 学生博客及Git@OSC 链接
  4. Hadoop c++开发
  5. 【转】linux下cpio命令使用
  6. Microsoft Script Editor
  7. Asp.Net 之 服务器端控件与客户端控件的区别
  8. c#自定义液晶数字控件
  9. 一个用C#实现的虚拟WiFi设置程序
  10. CH Round #53-数据备份
  11. Java 类的成员初始化顺序
  12. 使用SoapUI 测试Web Service
  13. CSS公用
  14. iOS开发之Objective-C与JavaScript的交互
  15. 【Java提高】---通过UUID、SHA-1、Base64组合加密
  16. 微信小程序上传与下载文件
  17. 2.App爬取相关库的安装(安装mitmproxy)
  18. [Go] panic 和 recover
  19. 没有公网的IP的用户有福了,即使您没有公网IP,我们要一样可以让您与ER对接,同时可远程访问
  20. STL——空间配置器(SGI-STL)

热门文章

  1. How do you stop Ansible from creating .retry files in the home directory?
  2. ios控件自定义指引
  3. 【转载】viewState详解
  4. java 获取微信 页面授权 获取用户openid
  5. 设置mysql隔离级别
  6. 完好用户体验: 活用window.location与window.open解决页面跳转问题
  7. linux下开启ftp的21号port
  8. C#与Java在修饰符上的不同
  9. Docker入门系列3:使用
  10. NSSrting的几种经常使用的使用方法