Android textView 大小大于动态创建的
Android textView size is bigger than dynamically created one
我在使用动态创建的 TextView 时遇到了一些问题。更具体地说:
<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);
如何使它们相等?预先感谢
删除这一行:
prName.setTextSize(TypedValue.COMPLEX_UNIT_PX, 30);
...或者改用这个:
prName.setTextSize(30);
对于文本,您应该使用比例点 (SP) 而不是像素。
对于xml:
android:textSize="30sp"
代码:
prName.setTextSize(TypedValue.COMPLEX_UNIT_SP, 30);
将文本视图的高度和宽度设置为 wrap_content。
LinearLayout.LayoutParams Params1 = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
prName.setLayoutParams(Params1);
确保当您为任何类型的视图设置 TextSize 时,您应该将其设置为可缩放点 (sp) 而不是像这样的像素 (px):
在xml中:
android:textSize="18sp"
代码中:
prName.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
使用可缩放点将使您的 TextView 文本大小在所有设备上都相等,而使用像素将使您的 TextView 文本大小在不同分辨率的设备上不相等。
使用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);
我在使用动态创建的 TextView 时遇到了一些问题。更具体地说:
<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);
如何使它们相等?预先感谢
删除这一行:
prName.setTextSize(TypedValue.COMPLEX_UNIT_PX, 30);
...或者改用这个:
prName.setTextSize(30);
对于文本,您应该使用比例点 (SP) 而不是像素。
对于xml:
android:textSize="30sp"
代码:
prName.setTextSize(TypedValue.COMPLEX_UNIT_SP, 30);
将文本视图的高度和宽度设置为 wrap_content。
LinearLayout.LayoutParams Params1 = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
prName.setLayoutParams(Params1);
确保当您为任何类型的视图设置 TextSize 时,您应该将其设置为可缩放点 (sp) 而不是像这样的像素 (px):
在xml中:
android:textSize="18sp"
代码中:
prName.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
使用可缩放点将使您的 TextView 文本大小在所有设备上都相等,而使用像素将使您的 TextView 文本大小在不同分辨率的设备上不相等。
使用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);