android中获取屏幕信息,做标准刻度的尺子

本文介绍如何在Android应用中实现一个标准尺子,关键步骤包括获取DisplayMetrics信息,绘制尺子并设定相关动作。通过DisplayMetrics获取屏幕尺寸和密度,然后在onDraw方法中设置画笔样式,以中点为基准画出带有刻度和数字的尺子,同时考虑了尺子的旋转角度。完整源码可在CSDN下载。
摘要由CSDN通过智能技术生成

在教学app中会有尺子的出现,我们如何获取标准的刻度呢

实现的关键是:

1.获取设备屏幕的信息

2.根据参数绘制尺子

3.设定尺子的相关动作


第一步的关键是DisplayMetrics,它的介绍是A structure describing general information about a display, such as its size, density, and font scaling.

和getWindowManager().getDefaultDisplay().getMetrics();它的介绍是Gets display metrics that describe the size and density of this display.

我们通过

dm = new DisplayMetrics();
		getWindowManager().getDefaultDisplay().getMetrics(dm);
将屏幕信息传入到dm结构体中,再将dm作为传参给我们的RulerView类

构造方法:

public RulerView(Context context, DisplayMetrics dm) {
		super(context);
		find_pixal(dm);
		ruler_length = 6 * xcm; // 设置一开始为6厘米的尺子
		ruler_width = xcm;
		mid_point.set((float) (ruler_length * 0.5), 0);
		rect = new Rect(0, 0, (int) (ruler_length), (int) ruler_width);
	}
protected void find_pixal(DisplayMetrics dm) {
		xcm = (float) (dm.xdpi / 2.54); // 单位都是pixal
		xmm = xcm / 10;
	}


dm.xdpi是The exact physical pixels per inch of the screen in the X dimension.,我们将pixal/inch转换成pixal每厘米只需要除以2.54即可,毫米同理。

其实实际上应该是要用上x和y一起计算的,不过基本所有设备x和y上的dpi都是一样的,所以我们只用xdpi就好了

声明F

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值