我需要检查按钮上的文字大小是否为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() );
我应该如何回复文字大小的ral值?
答案 0 :(得分:2)
getTextSize()
返回px
浮动
这是将 PX 转换为 SP 格式的代码。
view.setTextSize(TypedValue.COMPLEX_UNIT_PX, 24);
答案 1 :(得分:1)
float oldSize=buttoneql.getTextSize();
浮动的文字大小
Log.d("size in float",""+oldSize);
float dp= getResources().getDisplayMetrics().scaledDensity;
规模密度的浮动值
float newSize=oldSize/dp;
textize in sp = new size
Log.d("newSize in sp-->",""+newSize);
比较文字大小的浮动值和新尺寸
if(48.0==newSize){
Log.d("equal size-->","true");
}
else{
Log.d("equal size-->","false");
}
答案 2 :(得分:1)
我通过将我需要的值(128.0)乘以2.625并将其四舍五入以使其成为整数来解决问题。
int size = (int) Math.round (48.0 * 2.625);
然后,与接收值进行比较:
assertEquals(size, (int) buttoneql.getTextSize());