0

我正在开发一个应用程序,我在主菜单上有一系列按钮,我希望它们都具有相同的文本大小。我可以在属性文件中指定吗?

这是我当前的 XML 文件。

<?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>

12sp我是否可以用类似的东西替换所有内容@string\custom_text_size,然后在 string.xml 文件中定义它?当我尝试这个时,我在启动我的应用程序时遇到了一个致命的异常。

4

2 回答 2

2

你是如此接近,但你需要定义 adimen而不是 astring

<dimen name="textSize12">12sp</dimen>

Button会看起来像这样。-

<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"/>

理想情况下,dimen资源在单独的资源文件中定义,例如dimens.xml

于 2013-09-30T18:43:35.870 回答
0

在 res/values/styles.xml 中创建样式:

<style name="TextSize">
    <item name="android:textSize">12sp</item>
</style>

在您的 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"/>

通过使用样式,您可以存储多种设置,例如背景可绘制对象、文本颜色等...

于 2013-09-30T18:43:49.913 回答