我按下“添加”按钮动态添加EditText。我已经处理了小部件的动态创建并将它们添加到现有的xml布局中。但问题在于文字大小。我在xml布局中使用15 SP,并希望为动态创建的大小保持相同的大小。
我已应用以下代码动态计算文字大小:
int txtSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 15, getResources().getDisplayMetrics());
EditText child = new EditText(MyActivity.this);
child.setTextSize(txtSize);
尽管我使用了缩放像素,但它没有产生预期的结果,文字大小因屏幕尺寸的不同而有所不同。
请帮忙......
答案 0 :(得分:0)
这是一种方法:
定义替代"风格"具有不同屏幕尺寸的设备的资源。
<style name="DetailText">
<item name="android:textColor">@color/detail_text_color</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">22sp</item>
</style>
在代码中添加逻辑以从样式文件中检索文本大小。此链接显示如何在样式文件中检索属性的valute:How to retrieve style attributes programmatically from styles.xml
答案 1 :(得分:0)
尝试:
int textSize = 15;
EditText child = new EditText(MyActivity.this);
child.setTextSize(Android.Util.ComplexUnitType.Sp, textSize);
答案 2 :(得分:0)
只需编写此代码
EditText child = new EditText(MyActivity.this);
child.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
参考
http://developer.android.com/reference/android/util/TypedValue.html#COMPLEX_UNIT_SP