Canvas上的Android文本大小与TextView中的文本大小不同

Canvas上的Android文本大小与TextView中的文本大小不同,第1张

概述我有一个SurfaceView和TextView,我在上面绘制文本 Paint p = new Paint();p.p.setTextSize(14);canvas.drawText(....TextView text =...text.setTextSize(14); 在某些设备上,两个文本看起来完全相同.但在仿真器和三星Galaxy III上,画布上的文字要小两倍.为什么?如何在所有 我有一个SurfaceVIEw和TextVIEw,我在上面绘制文本

Paint p = new Paint();p.p.setTextSize(14);canvas.drawText(....TextVIEw  text =...text.setTextSize(14);

在某些设备上,两个文本看起来完全相同.但在仿真器和三星galaxy III上,画布上的文字要小两倍.为什么?如何在所有设备上获得相同的尺寸?

SurfaceVIEw和TextVIEw同时出现在屏幕上. TextVIEw位于多个图层上,并覆盖在SurcafeVIEw的Canvas上.

最好的祝福

解决方法 您必须在AndroID中使用设备无关的像素(dp / dip)才能在所有设备上获得相同的大小.在Text的情况下,存在与比例无关的像素(sp).详细了解这些以便更好地理解.

To convert Pixel value into dp use the following code:

public static float convertPixelsToDp(float px,Context context){  displayMetrics metrics = context.getResources().getdisplayMetrics();  float dp = px / (metrics.densityDpi / 160f);  return dp;}

To convert dp value into pixel use the following code:

public static float convertDptopixel(float dp,Context context){  displayMetrics metrics = context.getResources().getdisplayMetrics();  float px = dp * (metrics.densityDpi/160f);  return px;}

只需根据您的要求调用您想要的任何方法.

总结

以上是内存溢出为你收集整理的Canvas上的Android文本大小与TextView中的文本大小不同全部内容,希望文章能够帮你解决Canvas上的Android文本大小与TextView中的文本大小不同所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址:https://www.54852.com/web/1129889.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存