如何获取触摸屏某个区域内的dpi个数

如何获取触摸屏某个区域内的dpi个数,第1张

在Android中,关于屏幕的宽度、高度等的信息都封装在DisplayMetrics 类中,获取 DisplayMetrics 的方法以下几种:

不需要用到 context 的:

第一种:

DisplayMetrics metrics = new DisplayMetrics();

WindowManager manager = (WindowManager) contextgetSystemService(ServiceWINDOW_SERVICE);

if (manager != null) {

managergetDefaultDisplay()getMetrics(metrics);

}

需要用到 context 的:

第二种:

DisplayMetrics metrics = contextgetResources()getDisplayMetrics();

第三种:

DisplayMetrics metrics = new DisplayMetrics();

contextgetDisplay()getMetrics(metrics);

第四种:与第三种的方式类似,通过ApplicationContext获取。

DisplayMetrics metrics = new DisplayMetrics();

contextgetApplicationContext()getDisplay()getMetrics(metrics);

拿到DisplayMetrics之后,就可以访问里面的属性了:

// 屏幕的逻辑密度,是密度无关像素(dip)的缩放因子,160dpi是系统屏幕显示的基线,1dip = 1px, 所以,在160dpi的屏幕上,density = 1, 而在一个120dpi屏幕上 density = 075。

float density = metricsdensity;

// 屏幕的绝对宽度(像素)

int screenWidth = metricswidthPixels;

// 屏幕的绝对高度(像素)

int screenHeight = metricsheightPixels;

// 屏幕上字体显示的缩放因子,一般与density值相同,除非在程序运行中,用户根据喜好调整了显示字体的大小时,会有微小的增加。

float scaledDensity = metricsscaledDensity;

// X轴方向上屏幕每英寸的物理像素数。

float xdpi = metricsxdpi;

// Y轴方向上屏幕每英寸的物理像素数。

float ydpi = metricsydpi;

// 每英寸的像素点数,屏幕密度的另一种表示。densityDpi = density 160

float desityDpi = metricsdensityDpi;

clear

a=input('give me a number\n');

y=1;

for s=2:ceil(sqrt(a))

if mod(a,s)==0

y=0;

end

end

b=input('do you want to know if it is prime ','s');

if b=='y'

if y

disp('yes, it is');

else

disp('no, it is not ');

end

end

以上就是关于如何获取触摸屏某个区域内的dpi个数全部的内容,包括:如何获取触摸屏某个区域内的dpi个数、哪位好心人能帮忙写个简单的matlab程序 很着急 多谢!!、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9752009.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存