Reputation: 327
I'm working on an app and I have a series of buttons on the main menu that I want to all have the same text size. Is it possible for me to specify that in a properties file?
Here is my current XML file.
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/sensors_available"
android:text="@string/sensors_available"
android:textSize="12sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/b_start_hm"
android:text="@string/hm_start_service"
android:textSize="12sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/b_stop_hm_service"
android:text="@string/hm_stop_service"
android:textSize="12sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/b_start_hot_video"
android:text="@string/video_service_start"
android:onClick="startHotVideoService"
android:textSize="12sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/b_hv_stop_service"
android:text="@string/hv_stop_service"
android:textSize="12sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</TableRow>
</TableLayout>
Is it possible for me to replace all the 12sp
with something like @string\custom_text_size
and then define that in the string.xml file? When I tried this, I got a fatal exception when I started my app.
Upvotes: 0
Views: 1247
Reputation: 16526
You were so close, but you need to define a dimen
instead of a string
<dimen name="textSize12">12sp</dimen>
And your Button
would look like this.-
<Button
android:id="@+id/b_stop_hm_service"
android:text="@string/hm_stop_service"
android:textSize="@dimen/textSize12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
Ideally, dimen
resources are defined in a separate resources file, such as dimens.xml
Upvotes: 2
Reputation: 5551
Create a style in res/values/styles.xml:
<style name="TextSize">
<item name="android:textSize">12sp</item>
</style>
Declare it in your XML:
<Button
android:id="@+id/b_start_hot_video"
android:text="@string/video_service_start"
android:onClick="startHotVideoService"
style="@style/TextSize"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
By using styles, you can store multiple settings, like background drawables, textColor etc...
Upvotes: 0