将文本大小设置为动态创建的EditText小部件会为不同的android屏幕生成不同的大小
我在按Add按钮时动态添加EditText。我已经处理了小部件的动态创建,并将它们添加到现有的xml布局中。但问题在于文本大小。我在xml布局中使用了15个SP,并且希望动态创建的布局也保持相同的大小 我已应用以下代码动态计算文本大小:将文本大小设置为动态创建的EditText小部件会为不同的android屏幕生成不同的大小,android,Android,我在按Add按钮时动态添加EditText。我已经处理了小部件的动态创建,并将它们添加到现有的xml布局中。但问题在于文本大小。我在xml布局中使用了15个SP,并且希望动态创建的布局也保持相同的大小 我已应用以下代码动态计算文本大小: int txtSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 15, getResources().getDisplayMetrics()); EditText child =
int txtSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 15, getResources().getDisplayMetrics());
EditText child = new EditText(MyActivity.this);
child.setTextSize(txtSize);
尽管我使用的是缩放像素,但它不能产生期望的结果,文本大小会根据不同的屏幕大小而变化
请帮助……这里有一种方法:
- 创建res/values-sw480dp和res/values-sw720dp文件夹(假设需要处理屏幕宽度480和720像素)
- 在每个资源文件夹中添加一个屏幕大小不同的styles.xml
- styles.xml包含如下样式:
@颜色/细节\u文本\u颜色
大胆的
22便士
- 对于不同大小的屏幕,在样式文件中使用不同的textSize
- 有关如何为不同大小的屏幕创建替代资源的详细信息,请使用此链接
EditText child = new EditText(MyActivity.this);
child.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
参考文献
我正在研究C#这对我来说很有用,也许你需要对这段代码做一点修改才能在java上使用,但应该可以很好地工作。感谢Ivan Verges,这很有效,我将其替换为java语言“child.setTextSize(TypedValue.COMPLEX_UNIT_SP,15)”的代码。谢谢梅林的回答。事实上,上述解决方案对我有效。非常感谢你。
EditText child = new EditText(MyActivity.this);
child.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);