博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android自定义控件(二) 入门,继承View
阅读量:7143 次
发布时间:2019-06-29

本文共 1353 字,大约阅读时间需要 4 分钟。

转载请注明地址:

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

 

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

 

布局

 

[java]
 
  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放在控件上面可以显示),以后再解决

下载地址 

转载于:https://www.cnblogs.com/chengzhengfu/p/4574084.html

你可能感兴趣的文章
Bind9配置过程
查看>>
Html5添加制作全屏响应式效果的图片画廊插件教程
查看>>
python3 requests 抓取乱码问题
查看>>
busybox工具Linux系统
查看>>
Linux 基于源码的mysql安装
查看>>
编辑列表(删除所选项)
查看>>
811A - RAM、ROM
查看>>
linux网络设置
查看>>
我的友情链接
查看>>
AsyncTaskLoader(异步装载)对sqlite数据库删改操作
查看>>
Exchange2013 ECP迁移用户提示错误(该用户没有Exchange邮箱)及解决方案
查看>>
本地YUM-Redhat Enterprise 5.9
查看>>
客户端扫码登录功能的实现思路
查看>>
anroid Bar 进度条示例
查看>>
照猫画虎学UML-泛化、关联、聚合、组合、依赖
查看>>
常见的网页报错
查看>>
linux学习第5天
查看>>
京东市场份额下降 Q2交易额究竟有多少
查看>>
用myeclipse创建servlet
查看>>
搭建PXE网络实现远程装机服务
查看>>