Xamarin Android - 从维度文件设置 TextSize
Xamarin Android - Setting TextSize from Dimension file
我有一个 Xamarin Android 项目,我在其中使用尺寸文件为不同的屏幕指定文本大小、填充、边距等 sizes/resolutions。
我注意到直接在布局中设置值和在代码中设置值之间存在明显差异。
例如,如果我将以下内容添加到 TextView 布局 XML
android:textSize="@dimen/nav_tile_text_size"
那么我希望结果与在代码中这样做是一样的
myTextView.SetTextSize(ComplexUnitType.Sp, _context.Resources.GetDimension(Resource.Dimension.nav_tile_text_size))
维度文件包含以下内容:
<dimen name="nav_tile_text_size">17sp</dimen>
但结果 UI 显示尺寸没有正确应用
我在这里错过了什么??
没错。您需要使用
myTextView.SetTextSize(Android.Util.ComplexUnitType.Sp, Resources.GetDimension(Resource.Dimension.nav_title_text_size)/Resources.DisplayMetrics.Density);
单位,否则乘以 phone 的密度。我亲自检查了这段代码,它有效
我有一个 Xamarin Android 项目,我在其中使用尺寸文件为不同的屏幕指定文本大小、填充、边距等 sizes/resolutions。
我注意到直接在布局中设置值和在代码中设置值之间存在明显差异。
例如,如果我将以下内容添加到 TextView 布局 XML
android:textSize="@dimen/nav_tile_text_size"
那么我希望结果与在代码中这样做是一样的
myTextView.SetTextSize(ComplexUnitType.Sp, _context.Resources.GetDimension(Resource.Dimension.nav_tile_text_size))
维度文件包含以下内容:
<dimen name="nav_tile_text_size">17sp</dimen>
但结果 UI 显示尺寸没有正确应用
我在这里错过了什么??
没错。您需要使用
myTextView.SetTextSize(Android.Util.ComplexUnitType.Sp, Resources.GetDimension(Resource.Dimension.nav_title_text_size)/Resources.DisplayMetrics.Density);
单位,否则乘以 phone 的密度。我亲自检查了这段代码,它有效