我试图在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"/>
答案 0 :(得分:0)
您收到的像素大小不是sp。
getTextSize
float getTextSize ()
Returns
float the size (in pixels) of the default text size in this TextView.
您可以使用它将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;
}