Android手机尺子项目
该项目就是让自己的手机屏幕变成一把尺子,看起来比较酷炫,而且可以很容易的进行测量。接下来看一下效果如何。
这个小项目其实没有什么特别的难度,关键是对于xml文件当中的textView进行重写。现在让我们来看一下代码:
首先是布局文件activity_main.xml的代码。
//这下面采用的是线性布局,在线性布局下面几个文本textview
<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"
android:orientation="horizontal"
>
<com.ruler.MC //表示的是该textview继承自重写自com.ruler.MC
android:layout_width="10mm"
android:layout_height="10mm"
android:text="1cm"
android:textSize="10pt"
android:background="#ff00ff"
android:layout_gravity="center_vertical"
android:textColor="#ffffff"/>
<com.ruler.MC
android:layout_width="10mm"
android:layout_height="10mm"
android:text="2cm"
android:textSize="10pt"
android:background="#ff0000"
android:layout_gravity="center_vertical"
android:textColor="#ffffff"/>
<com.ruler.MC
android:layout_width="10mm"
android:layout_height="10mm"
android:text="3cm"
android:textSize="10pt"
android:background="#ff00cc"
android:layout_gravity="center_vertical"
android:textColor="#ffffff"/>
<com.ruler.MC
android:layout_width="10mm"
android:layout_height="10mm"
android:text="3cm"
android:textSize="10pt"
android:background="#ff0000"
android:layout_gravity="center_vertical"
android:textColor="#ffffff"/>
<com.ruler.MC
android:layout_width="10mm"
android:layout_height="10mm"
android:text="4cm"
android:textSize="10pt"
android:background="#ffec00"
android:layout_gravity="center_vertical"
android:textColor="#ffffff"/>
<com.ruler.MC
android:layout_width="10mm"
android:layout_height="10mm"
android:text="5cm"
android:textSize="10pt"
android:background="#ff0000"
android:layout_gravity="center_vertical"
android:textColor="#ffffff"/>
</LinearLayout>
接下来看的是重写类文件的代码MC.java
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;
/**
*
* 重写相应的textView,使得在其上面增加数字
*
*
*/
public class MC extends TextView {
//构造函数的初始化
public MC(Context context) {
super(context);
init();
}
public MC(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
//初始化textview,使text文字放最下面
private void init(){
setGravity(Gravity.BOTTOM);
}
//重写draw方法,使得出现刻度值
@Override
public void draw(Canvas canvas) {
// TODO Auto-generated method stub
super.draw(canvas);
float mmWidth=((float)getWidth())/10;//每一个小块的划分的大小
Paint paint=new Paint();
paint.setColor(Color.WHITE);
float top =2;
for (int i = 0; i < 10; i++) {
if(i%2==0){
canvas.drawRect(mmWidth*i, top, mmWidth+i*mmWidth, top+mmWidth, paint);
}
}
}
}
带主函数的那个java类,就是设置其启动xml,没有其他代码,就不列出代码来了。