继承TextView简单画一个尺子

 1 import android.content.Context;
 2 import android.graphics.Canvas;
 3 import android.graphics.Color;
 4 import android.graphics.Paint;
 5 import android.util.AttributeSet;
 6 import android.view.Gravity;
 7 import android.widget.TextView;
 8
 9 // 给尺子加上刻度。
10 public class CM extends TextView {
11
12     public CM(Context context) {
13         super(context);
14         init();
15     }
16
17     public CM(Context context, AttributeSet attrs) {
18         super(context, attrs);
19         init();
20     }
21
22     private void init() {
23         // 设置文字居底
24         setGravity(Gravity.BOTTOM);
25     }
26
27     @Override
28     public void draw(Canvas canvas) {
29         super.draw(canvas);
30
31         // 得到一毫米
32         float mmWidth = ((float) getWidth()) / 10;
33         Paint p = new Paint();
34         p.setColor(Color.WHITE);  // 更改画笔颜色
35         float top = 2;   // 标识
36         for (int i = 0; i < 10; i++) {
37             if (i % 2 == 0) {
38                 /**
39                  * i * mmWidth,第几个小方块乘以毫米的宽度。
40                  * top,距离上面有一个两毫米的距离。
41                  * i * mmWidth + mmWidth, 右面
42                  * top + 50,  下面
43                  */
44                 canvas.drawRect(i * mmWidth, top, i * mmWidth + mmWidth, top
45                         + 50, p);
46             }
47         }
48     }
49 }
 1 <LinearLayout 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.myruler.MainActivity" >
 7     <com.myruler.CM
 8         android:layout_width="10mm"
 9         android:layout_height="10mm"
10         android:layout_gravity="center_vertical"
11         android:background="#ff0000"
12         android:text="0cm"
13         android:textColor="#ffffffff"
14         android:textSize="10pt" />
16     <com.myruler.CM
17         android:layout_width="10mm"
18         android:layout_height="10mm"
19         android:layout_gravity="center_vertical"
20         android:background="#ff9900"
21         android:text="1cm"
22         android:textColor="#ffffffff"
23         android:textSize="10pt" />
25     <com.myruler.CM
26         android:layout_width="10mm"
27         android:layout_height="10mm"
28         android:layout_gravity="center_vertical"
29         android:background="#cccc00"
30         android:text="2cm"
31         android:textColor="#ffffffff"
32         android:textSize="10pt" />
34     <com.myruler.CM
35         android:layout_width="10mm"
36         android:layout_height="10mm"
37         android:layout_gravity="center_vertical"
38         android:background="#00ff00"
39         android:text="3cm"
40         android:textColor="#ffffffff"
41         android:textSize="10pt" />
43     <com.myruler.CM
44         android:layout_width="10mm"
45         android:layout_height="10mm"
46         android:layout_gravity="center_vertical"
47         android:background="#00cccc"
48         android:text="4cm"
49         android:textColor="#ffffffff"
50         android:textSize="10pt" />
52     <com.myruler.CM
53         android:layout_width="10mm"
54         android:layout_height="10mm"
55         android:layout_gravity="center_vertical"
56         android:background="#00ccff"
57         android:text="5cm"
58         android:textColor="#ffffffff"
59         android:textSize="10pt" />
61     <com.myruler.CM
62         android:layout_width="10mm"
63         android:layout_height="10mm"
64         android:layout_gravity="center_vertical"
65         android:background="#00cc00"
66         android:text="6cm"
67         android:textColor="#ffffffff"
68         android:textSize="10pt" />
70 </LinearLayout>
时间: 2024-07-29 20:39:00

继承TextView简单画一个尺子的相关文章

[原创]css3简单几步画一个乾坤图

效果如上,鼠标移上去会有动画. 代码如下非常简单: 1 <html> 2 <head> 3 <style> 4 .outer{height:100px;width:200px;border-radius:100px 100px 0px 0px;border:solid 1px #666;border-bottom:none; margin:0 auto;background:#fff;overflow:hidden;} 5 .inner{width:300px;heig

css3简单几步画一个乾坤图

原文:[原创]css3简单几步画一个乾坤图 效果如上,鼠标移上去会有动画. 代码如下非常简单: 1 <html> 2 <head> 3 <style> 4 .outer{height:100px;width:200px;border-radius:100px 100px 0px 0px;border:solid 1px #666;border-bottom:none; margin:0 auto;background:#fff;overflow:hidden;} 5 .

Directx11学习笔记【十一】 画一个简单的三角形--effect框架的使用

这里不再介绍effect框架的具体使用,有关effect框架使用可参考http://www.cnblogs.com/zhangbaochong/p/5475961.html 实现的功能依然是画一个简单的三角形,只不过使用了effect框架. 为了体现使用effect框架方便变量绑定的优点,我们对着色器代码做了修改,增加了一个常量float4x4 gWorldViewProj cbuffer cbPerObject { float4x4 gWorldViewProj; }; float4 VS_M

iOS下OpenGL ES 3.0编程入门(二 ):画一个简单三角形

上文我们讲解了如何构建一个hello world开发环境,那么这一篇我们就来画一个简单的三角形出来. 首先,我要向大家介绍下opengl es的渲染流程,在2.0之前,es的渲染采用的是固定管线,何为固定管线,就是一套固定的模板流程,局部坐标变换 -> 世界坐标变换 ->观察坐标变换->背面消除->光照->裁剪->投影->视口计算->光栅化,程序员只需要调用固定的api修改一些配置参数就可以完成整个渲染流程了.而到了2.0,固定管线改成了可编程管线,我们对整

手对手的教你用canvas画一个简单的海报

啦啦啦,首先说下需求,产品想让用户在我们app内,分享一张图片到微信.qq等平台.图片中包含用户的姓名.头像.和带着自己信息的二维码.然后,如何生成这张海报呢~~~首先我们老大告诉我有一个插件叫html2canvas.其作用就是可以将dom节点转化成图片,是个不错的东西.我试验了下.确实可以,但~这个插件有点大啊,为了满足海报的这个需求引入这么大的东西感觉很亏!!!所以,还是自己画一个~首先先上效果图 当当当当~~~最后生成的海报中包括头像和姓名与二维码,当然图上的二维码是百度的二维码~最后生成

Effective前端3:用CSS画一个三角形

三角形的场景很常见,打开一个页面可以看到各种各样的三角形: 由于div一般是四边形,要画个三角形并不是那么直观.你可以贴一张png,但是这种办法有点low,或者是用svg的形式,但是太麻烦.三角形其实可以用CSS画出来.如上图提到,可以分为两种三角形,一种是纯色的三角形,第二种是有边框色的三角形,先介绍最简单的纯色三角形. 1. 三角形的画法 三角形可以用border画出来,首先一个有四个border的div应该是这样的: 然后把它的高度和宽度去掉,剩下四个border,就变成了: 再把bord

自己画一个ActivityIndicatorView-b

苹果的UI控件中有一个UIActivityIndicatorView,俗称菊花.→_→现在我们仿照它来制作一个其它样式的指示器,如下: ActivityView.png 自定义指示器 首先画一个白色的扇形.创建一个MyLayer类继承自CALayer,重写它的绘图方法- (void)drawInContext:(CGContextRef)ctx: - (void)drawInContext:(CGContextRef)ctx {        CGContextSetRGBFillColor(c

手把手带你画一个动态错误提示 Android自定义view

嗯..再差1篇就可以获得持之以恒徽章了,今天带大家画一个比较简单的view. 转载请注明出处:http://blog.csdn.net/wingichoy/article/details/50477108 废话不多说,看效果图: 首先 构造函数 测量... 这里就一笔带过了. public ErrorView(Context context) { this(context, null); } public ErrorView(Context context, AttributeSet attrs

NET简单的一个画图程序

using System; using System.Drawing; //HttpUtility.UrlEncode /// <summary> ///Curve 的摘要说明 /// </summary> public class Curve { public Curve() { // //TODO: 在此处添加构造函数逻辑 // } /*******************************************************属性设置*************