Let's try and explore your presumptions here:
Your buttons size is set to "wrap_content". Meaning that it's dependant on the size of the text it wraps.
You want your buttons to change visual size depending on the visual size of the screen your displaying your app on.
Therfore: you're basically expecting the font size to change depending on your devices's screen.
I do not feel this is the right approach in achieving what you want. There are several tools that can help you here, let's explore one: the weight attribute: What does android:layout_weight mean?
Here is an example of an array of buttons, that would look visually similar on any screen (the emphasize is on "similar" here. But this is what you're trying to achieve):
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/btnMainMenuTestUSB"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button1" />
<Button
android:id="@+id/btnMainMenuSetLocationNew"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button2" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/btnLineOfSight"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button3" />
<Button
android:id="@+id/btnTargetScreen"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button4" />
</LinearLayout>