使用 getTextSize() 测试按钮上文本的大小
Test the size of a text on a button with getTextSize()
我需要检查按钮上的文字大小是否为 37sp。
我找到了一种获取大小的方法:.getTextSize()
,但我收到的大小是:126.0
,而不是 48sp
。
代码关闭按钮:
<Button
android:id="@+id/buttoneql"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="="
android:textColor="@android:color/black"
android:textSize="48sp" />
测试:
buttoneql = (Button) currentActivity.findViewById(R.id.buttoneql);
assertEquals( 48.0f, buttoneql.getTextSize() );
我应该如何获得文字大小的真实值?
getTextSize()
return px
浮动
这是将 PX 格式转换为 SP 格式的代码。
view.setTextSize(TypedValue.COMPLEX_UNIT_PX, 24);
float oldSize=buttoneql.getTextSize();
浮动文本大小
Log.d("size in float",""+oldSize);
float dp= getResources().getDisplayMetrics().scaledDensity;
尺度密度的浮点值
float newSize=oldSize/dp;
sp 中的文本大小 = 新大小
Log.d("newSize in sp-->",""+newSize);
比较文本大小和新大小的浮点值
if(48.0==newSize){
Log.d("equal size-->","true");
}
else{
Log.d("equal size-->","false");
}
我通过将我需要的值 (128.0) 乘以 2.625 并将其正确四舍五入使其成为整数来解决问题。
int size = (int) Math.round (48.0 * 2.625);
之后,与接收值比较:
assertEquals(size, (int) buttoneql.getTextSize());
我需要检查按钮上的文字大小是否为 37sp。
我找到了一种获取大小的方法:.getTextSize()
,但我收到的大小是:126.0
,而不是 48sp
。
代码关闭按钮:
<Button
android:id="@+id/buttoneql"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="="
android:textColor="@android:color/black"
android:textSize="48sp" />
测试:
buttoneql = (Button) currentActivity.findViewById(R.id.buttoneql);
assertEquals( 48.0f, buttoneql.getTextSize() );
我应该如何获得文字大小的真实值?
getTextSize()
return px
浮动
这是将 PX 格式转换为 SP 格式的代码。
view.setTextSize(TypedValue.COMPLEX_UNIT_PX, 24);
float oldSize=buttoneql.getTextSize();
浮动文本大小
Log.d("size in float",""+oldSize);
float dp= getResources().getDisplayMetrics().scaledDensity;
尺度密度的浮点值
float newSize=oldSize/dp;
sp 中的文本大小 = 新大小
Log.d("newSize in sp-->",""+newSize);
比较文本大小和新大小的浮点值
if(48.0==newSize){
Log.d("equal size-->","true");
}
else{
Log.d("equal size-->","false");
}
我通过将我需要的值 (128.0) 乘以 2.625 并将其正确四舍五入使其成为整数来解决问题。
int size = (int) Math.round (48.0 * 2.625);
之后,与接收值比较:
assertEquals(size, (int) buttoneql.getTextSize());