使用getTextSize()测试按钮上文本的大小

时间:2017-11-16 11:58:04

标签: android button get assert text-size

我需要检查按钮上的文字大小是否为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值?

3 个答案:

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