Android:如何为不同屏幕尺寸的模板顶部的 EditText 视图缩放字体大小?

问题描述 投票:0回答:0

我在Android应用程序中实现了自定义贺卡,这意味着用户可以在贺卡不同模板顶部的预定义位置添加照片和编辑文本。卡片为 1200x2400 像素(垂直)。同样,我用相同的逻辑实现了横幅。唯一的区别是尺寸为 10500x3300 像素(水平)。

我有两个活动,第一个是编辑卡/横幅,接下来是预览卡/横幅。 不过,我正在为字体大小而苦苦挣扎。

用户选择照片和编辑文本后,自定义文本和图像被添加到模板并合并成一个jpeg文件。创建 jpeg 时,字体大小乘以 1/72 将其转换为每英寸。

在卡片中,当我使用 14 号字体时,它通常是编辑和预览页面上可见的文本。但是如果我为横幅使用 14 号字体,文本在编辑页面上显示正常但在预览中非常小。当然,那是因为横幅比卡片大得多。所以 14 变成英寸是一个非常小的值,所以文本大小很小。

所以对于横幅,我需要使用大约 114 的字体大小才能使它们看起来正常。 (这些数字不是常量,但字体大小更接近。) 但是在编辑页面上,114 号的文字显得很大。如此之多,以至于即使是一个字母也超过了文本视图。 所以这意味着我需要一个比例因子。 我尝试使用以下公式来缩放字体大小:

new font = og font x screen width / image width

new font: font size for edit screen.

og font: font size that it actually should be for the text to be accurate size in the preview.

image width: banner or card width;

但它不适用于所有屏幕尺寸。 例如,在手机中,大多数情况下,它是有效的。但对于平板电脑,编辑页面上的文字大小比手机屏幕上显示的要小。手机分辨率:1080x2340 (OnePlus 6T),720x1280 (Galaxy J7) 平板电脑分辨率:800x1280。 我想知道屏幕纵横比是否有影响,如果有,为什么我的公式不起作用,因为它确实考虑了屏幕宽度?

我知道字体大小与高度有关,与宽度无关。但是当我尝试在上面的公式中将宽度更改为高度时,我仍然得到巨大的文本大小。 所以我的问题是:如何在编辑页面上设置横幅的字体大小?

下面附上几张图片,分别是卡片和横幅的编辑页面和预览页面: https://drive.google.com/drive/folders/1tkVdMS4Kfaf9AfAY94lLnjxpWhIf2LCI

android fonts textview jpeg pixel
© www.soinside.com 2019 - 2024. All rights reserved.