Android - 使textview自动调整大小的文本以适应布局

时间:2016-11-09 20:24:56

标签: android resize textview text-size

我试图在textview中获取文本的大小,以便稍后在代码中使用它。

我已经声明了一个浮点数和我的textview

private float mStartTextSize;
private TextView mWordTextView;

然后在我的onCreate中我有

 mWordTextView = (TextView) findViewById(R.id.factTextView);
 mStartTextSize = mWordTextView.getTextSize();

但是当我调试并使用我的手机时,即使我在xml中将其设置为30sp,它也会获得105的值。

 <TextView
    android:layout_width="match_parent"
    android:layout_height="55dp"
    android:text="@string/choose_teams"
    android:singleLine="false"
    android:id="@+id/wordTextView"
    android:textSize="30sp"
    android:textColor="@android:color/white"
    android:textStyle="bold|italic"
    android:layout_below="@+id/titleTextView"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="70dp"
    android:gravity="top|center"/>

1 个答案:

答案 0 :(得分:0)

您收到的像素大小不是sp。

getTextSize
float getTextSize ()

Returns
float   the size (in pixels) of the default text size in this TextView.

getTextSize() documentation

您可以使用它将sp / dp转换为像素并返回,而无需上下文。

public static float pxToDp(int px) {
    return px / Resources.getSystem().getDisplayMetrics().density;
}

public static float dpToPx(int dp) {
    return dp * Resources.getSystem().getDisplayMetrics().density;
}