继承TextView简单画一个尺子-LMLPHP

 import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.Gravity;
import android.widget.TextView; // 给尺子加上刻度。
public class CM extends TextView { public CM(Context context) {
super(context);
init();
} public CM(Context context, AttributeSet attrs) {
super(context, attrs);
init();
} private void init() {
// 设置文字居底
setGravity(Gravity.BOTTOM);
} @Override
public void draw(Canvas canvas) {
super.draw(canvas); // 得到一毫米
float mmWidth = ((float) getWidth()) / 10;
Paint p = new Paint();
p.setColor(Color.WHITE); // 更改画笔颜色
float top = 2; // 标识
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
/**
* i * mmWidth,第几个小方块乘以毫米的宽度。
* top,距离上面有一个两毫米的距离。
* i * mmWidth + mmWidth, 右面
* top + 50, 下面
*/
canvas.drawRect(i * mmWidth, top, i * mmWidth + mmWidth, top
+ 50, p);
}
}
}
}
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.myruler.MainActivity" >
<com.myruler.CM
android:layout_width="10mm"
android:layout_height="10mm"
android:layout_gravity="center_vertical"
android:background="#ff0000"
android:text="0cm"
android:textColor="#ffffffff"
android:textSize="10pt" />
<com.myruler.CM
android:layout_width="10mm"
android:layout_height="10mm"
android:layout_gravity="center_vertical"
android:background="#ff9900"
android:text="1cm"
android:textColor="#ffffffff"
android:textSize="10pt" />
<com.myruler.CM
android:layout_width="10mm"
android:layout_height="10mm"
android:layout_gravity="center_vertical"
android:background="#cccc00"
android:text="2cm"
android:textColor="#ffffffff"
android:textSize="10pt" />
<com.myruler.CM
android:layout_width="10mm"
android:layout_height="10mm"
android:layout_gravity="center_vertical"
android:background="#00ff00"
android:text="3cm"
android:textColor="#ffffffff"
android:textSize="10pt" />
<com.myruler.CM
android:layout_width="10mm"
android:layout_height="10mm"
android:layout_gravity="center_vertical"
android:background="#00cccc"
android:text="4cm"
android:textColor="#ffffffff"
android:textSize="10pt" />
<com.myruler.CM
android:layout_width="10mm"
android:layout_height="10mm"
android:layout_gravity="center_vertical"
android:background="#00ccff"
android:text="5cm"
android:textColor="#ffffffff"
android:textSize="10pt" />
<com.myruler.CM
android:layout_width="10mm"
android:layout_height="10mm"
android:layout_gravity="center_vertical"
android:background="#00cc00"
android:text="6cm"
android:textColor="#ffffffff"
android:textSize="10pt" />
</LinearLayout>
05-11 15:41
查看更多