Android textView大小比动态创建的大

时间:2015-08-20 11:27:34

标签: android textview size

我遇到了动态创建的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);

如何使他们平等?先谢谢

5 个答案:

答案 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);