我生病了,找不到最好的方法,将textView用于不同的屏幕密度和分辨率。 我试过了:
为不同的密度创建不同的文件夹并放置"尺寸"。例如,文件夹值-xhdpi和dimension.xml,values-ldpi和dimension.xml。在我的代码上,我以编程方式获取textView.setTextSize(getResources()。getDimensions(R.id.myDimension); 在xml,20sp
如上例所示,但是放了这个textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources()。getDimensions(R.id.myDimension);
添加textAppearence,如textView.setTextAppearance(this,android.R.style.TextAppearance_Large);
但是所有的例子,我都得到了我没想到的东西,因为得到的文字比较大。如下图所示
除非我在适当的xml中更改我的维度,否则会发生这种情况。但是,我应该遵循什么样的结构? 例如,在drawbles中,人们建议使用比例为3:4:6:8,但在这里我没有遵循结构。 什么是最好的实践?人们通常做什么..? 我想要的是?这个..
答案 0 :(得分:0)
您必须使用与像素无关的单位作为文字大小。使用 sp 单位创建尺寸并以编程方式加载它们。
要支持多个屏幕,请查看in android documentation
对于sp单位说:
Similarly, you should prefer the sp (scale-independent pixel) to define text sizes.
The sp scale factor depends on a user setting and the system scales the size
the same as it does for dp.
换句话说,你有两个
您必须在值文件维度元素中声明。如果您不喜欢结果并且想要为每个屏幕类别特定的文本大小声明,则必须执行以下操作:
在values文件中,您可以放置一个dimens.xml文件,您将在其中声明为
<resources>
<dimen name="small_font_size"=10sp></dimen>
<dimen name="large_font_size"=20sp></dimen>
</resources>
答案 1 :(得分:0)
由你决定。您可以为不同的屏幕尺寸创建不同尺寸的文件。例如:
values-sw720dp 10.1“平板电脑1280x800 mdpi和更大
values-sw600dp 7.0“平板电脑1024x600 mdpi和更大
values-sw480dp 5.4“480x854 mdpi and greater
从维度文件中获取TextView中的值。