gpt4 book ai didi

适用于多个屏幕的 Android dimens 文件

转载 作者:行者123 更新时间:2023-11-30 00:22:33 25 4
gpt4 key购买 nike

我不熟悉使用多个屏幕,需要以下方面的帮助:

我有 2 台设备:

  1. 三星 S4

    • 展示类:普通
    • 最小宽度:360dp
    • 分辨率:1080 * 1920
    • 密度等级:XXHDPI
    • 密度:442dpi
  2. 三星平板电脑:

    • 展示类:大
    • 最小宽度:600dp
    • 分辨率:600 * 1024
    • 密度等级:MDPI
    • 密度:168dpi

我的问题是两个设备的值都是从同一个 dimens 文件中提取的。

  • 如果我的文本很小,在手机上看起来不错,但在平板电脑上就太小了
  • 如果我的文字很大,在平板电脑上看起来不错,但在手机上就太小了

你能告诉我每个值目录的名称应该是什么吗?

我试过:

值-sw360dp-xxhdpi值-sw600dp-mdpi

但是,这并没有什么不同。

我有一个方法:

public void setTextSize(Context context, TextView view, int textSizeInSp)
{
float spToPixel= TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, textSizeInSp, context.getResources().getDisplayMetrics());

view.setTextSize(convertSpToPixels(spToPixel, getApplicationContext()));
}

我有 2 个 dimens 文件条目:

值-sw360dp-xxhdpi\尺寸

<dimen name="font_english_large">20sp</dimen>

值-sw600dp-mdpi\尺寸

<dimen name="font_english_large">32sp</dimen>

我以编程方式尝试通过调用更改文本大小:

setTextSize(this, textView, (int)getResources().getDimension(R.dimen.font_english_large);

谢谢。

最佳答案

你只需要 valuesvalues-large ,然后使用 sp 指标将您的字体大小添加到相应的文件中。例如在 values/dimens.xml添加

<dimen name="randrom_text_font_size">18sp</dimen>

并在values-sw600dp/dimens.xml添加类似的内容

<dimen name="randrom_text_font_size">28sp</dimen>

然后在你的java代码中:

textView.setTextSize(0,getResources().getDimension(R.dimen.randrom_text_font_size));

或者在 XML 中

 android:textSize="@dimen/randrom_text_font_size"

关于适用于多个屏幕的 Android dimens 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46022710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com