android 高度设置占屏幕的百分比,android - 如何将以像素为单位的文本宽度转换为屏幕宽度/高度的百分比? - 堆栈内存溢出...

该博客介绍了如何使用DisplayMetrics和Paint来获取字符或字符串在屏幕上的宽度占比。通过getTextBounds()方法计算字符边界,然后与屏幕宽度相比,得出字符在屏幕上的百分比。这个比例可用于调整文本显示的适配性。
摘要由CSDN通过智能技术生成

您将需要通过DisplayMetrics或如何获取屏幕宽度...

为了获得字符大小,请使用带有边界的绘画进行计算。

characterWidth/screenWidth = characterScreenPercentage

我将其设为双精度,但您可以轻松将其更改为浮点型。

对于字符:

public Double characterToScreenWidthPercentage(Character c) {

Paint paint = new Paint();

Rect boundA = new Rect();

DisplayMetrics metrics = new DisplayMetrics();

((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE))

.getDefaultDisplay().getMetrics(metrics);

paint.getTextBounds(Character.toString(c), 0, 1, boundA);

Log.v("fn", Integer.toString(boundA.width()));

Log.v("fn", Integer.toString(metrics.widthPixels));

Log.v("fn", Double.toString((float) boundA.width() / (float) metrics.widthPixels));

return ((double) boundA.width() / (double) metrics.widthPixels);

}

对于字符串:

public Double stringToScreenWidthPercentage(String str) {

Paint paint = new Paint();

Rect boundA = new Rect();

DisplayMetrics metrics = new DisplayMetrics();

((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE))

.getDefaultDisplay().getMetrics(metrics);

paint.getTextBounds(str, 0, 1, boundA);

Log.v("fn", Integer.toString(boundA.width()));

Log.v("fn", Integer.toString(metrics.widthPixels));

Log.v("fn", Double.toString((float) boundA.width() / (float) metrics.widthPixels));

return ((double) boundA.width() / (double) metrics.widthPixels);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值