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.MCandroid: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.MCandroid: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.MCandroid: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.MCandroid: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.MCandroid: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.MCandroid: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方法,使得出现刻度值@Overridepublic void draw(Canvas canvas) {// TODO Auto-generated method stubsuper.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,没有其他代码,就不列出代码来了。

Android尺子项目相关推荐

  1. android标尺自定义view,android尺子的自定义view——RulerView详解

    项目中用到自定义尺子的样式: 原效果为 因为跟自己要使用的view稍有不同 所以做了一些修改,修改的注释都放在代码中了,特此记录一下. 首先是一个自定义View: public class RuleV ...

  2. Android尺子布局和自定义TextView

    Android尺子布局和自定义TextView 下面是具体实现: 新建项目:在UI中 <LinearLayout xmlns:android="http://schemas.andro ...

  3. Android开源项目分类汇总-转载

    太长了,还是转载吧... 今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源项目分类汇总,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有 ...

  4. 直接拿来用!最火的Android开源项目(一)

    2019独角兽企业重金招聘Python工程师标准>>> 摘要:对于开发者而言,了解当下比较流行的开源项目很是必要.利用这些项目,有时能够让你达到事半功倍的效果.为此,CSDN特整理了 ...

  5. java adt怎么打开项目,如何在Eclipse中打开Android Studio项目?

    慕的地6264312 将Android Studio项目导入Eclipse的分步过程 ...使用向导在eclipse中启动新的Android项目,并从app / build.gradle中填写以下详细 ...

  6. android r类 作用,Android 主项目和 Module 中 R 类的区别

    Android 主项目和 Module 中 R 类的区别 我们知道 Android 项目中会通过自动生成一个 R.java 类的方式来保存项目中所有资源文件的标识在主项目中生成的 R.java 中的资 ...

  7. Android开源项目SlidingMenu本学习笔记(两)

    我们已经出台SlidingMenu使用:Android开源项目SlidingMenu本学习笔记(一个),接下来再深入学习下.依据滑出项的Menu切换到相应的页面 文件夹结构: 点击Bluetooth能 ...

  8. Android Studio 第一次新建Android Gradle项目超级慢的解决方案

    Android Studio 第一次新建Android Gradle项目超级慢的解决方案 参考文章: (1)Android Studio 第一次新建Android Gradle项目超级慢的解决方案 ( ...

  9. 如何导入别人的android studio项目,解决gradle版本不兼容问题

    如何导入别人的android studio项目,解决gradle版本不兼容问题 参考文章: (1)如何导入别人的android studio项目,解决gradle版本不兼容问题 (2)https:// ...

最新文章

  1. Git 高级用法,喜欢就拿去用!
  2. [Android问答] 开发环境问题集锦
  3. 公司-弹出页回调之后加载页面
  4. Quartz.Net—MisFire
  5. c语言循环设计思想结构,C语言程序设计_05循环结构程序设计讲述.pptx
  6. C++STL容器vector
  7. 【C/C++多线程编程之四】终止pthread线程
  8. 计算机专业的校本教材,[中职计算机专业校本教材建设思路与实践]中职计算机专业课程...
  9. java字符串颠倒位置_java字符串第一个字符与最后一个字符颠倒位置测试
  10. 【LeetCode - 131】分割回文串(dp,dfs)
  11. 2016年1月20日总结
  12. 用户领域 API 监控和代码注入检测
  13. 两个offer如何做选择?年薪20万vs年薪15万
  14. python滑动手机屏幕_appium+python自动化24-滑动方法封装(swipe)
  15. php 冗余代码检测,冗余代码检查工具Simian | 求索阁
  16. SysML实践指南第二版(中文翻译:刘亚龙)第一章 系统工程基础
  17. 如何创造一个能和你对话的语音AI?
  18. 当你迷茫时,请努力做好现在的工作
  19. 针对顽固dll后缀文件删除
  20. canvas绘制太极图

热门文章

  1. 微信小程序手指拖动 出现滑动下拉效果
  2. 春考计算机教学总结,2017计算机教师教学工作总结范文参考
  3. Machine Learning 和 Data Science 的最佳公共数据集
  4. c语言程序设计黑白棋游戏,C语言课程设计_黑白棋游戏
  5. 基于centos7安装多实例mysql8.0完整版(超级详细)
  6. 制约软件产业发展的三要素
  7. nginx转发mysql请求_nginx转发mysql连接
  8. 学计算机物理什么难度,计算机专业一定要选物理吗
  9. 区块链学习笔记:来份P2P
  10. 易优cms忘记网站后台密码如何获取的方法 Eyoucms快速入门