我遇到了动态创建的TextViews的一些问题。更具体一点:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Some text"
android:textColor="@color/black"
android:textSize="30px" />
看起来比以前大得多:
TextView prName = new TextView(this);
prName.setTextColor(getResources().getColor(R.color.black));
prName.setText("Some text");
prName.setTextSize(TypedValue.COMPLEX_UNIT_PX, 30);
如何使他们平等?先谢谢
答案 0 :(得分:2)
对于文本,您应该使用缩放点(SP)而不是像素。
对于xml:
android:textSize="30sp"
代码:
prName.setTextSize(TypedValue.COMPLEX_UNIT_SP, 30);
答案 1 :(得分:1)
将高度和宽度设置为textview的wrap_content。
LinearLayout.LayoutParams Params1 = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
prName.setLayoutParams(Params1);
答案 2 :(得分:1)
确保为任何类型的视图设置textTize时,应将其设置为可伸缩点(sp)而不是像素(px),如下所示:
在xml中:
android:textSize="18sp"
代码:
prName.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
使用可伸缩点可以让所有设备上的TextView文本大小相等,而使用像素会使TextView文本大小在具有不同分辨率的设备上不相等。
答案 3 :(得分:0)
删除此行:
prName.setTextSize(TypedValue.COMPLEX_UNIT_PX, 30);
...或者改为使用它:
prName.setTextSize(30);
答案 4 :(得分:0)
使用 setTextSize(int unit, float size)
TypedValue.COMPLEX_UNIT_PX //Pixels
TypedValue.COMPLEX_UNIT_SP //Scaled Pixels
TypedValue.COMPLEX_UNIT_DIP //Device Independent Pixels
在这里只需设置
prName.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);