在Android应用程序中调整所有按钮的外观,而不是单独调整?

时间:2013-11-07 22:59:32

标签: android button attributes controls

有没有办法控制一组按钮在Android应用中的外观,而不是单独的?

例如,如果我有8个按钮,我想将所有minHeight更改为50dp。或者我是否必须单独更改每个值?在style.xml文件中或其他任何位置。

谢谢!

<Button
                android:id="@+id/btnWhite"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="2dp"
                android:background="#E0E0EB"
                android:gravity="center"
                android:minHeight="54dp"
                android:minWidth="59dp"
                android:onClick="@android:color/white"
                android:padding="0dp"
                android:text="White"
                android:textStyle="bold" />

            <Button
                android:id="@+id/btnGrey"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="2dp"
                android:background="#E0E0EB"
                android:gravity="center"
                android:minHeight="54dp"
                android:minWidth="59dp"
                android:padding="0dp"
                android:text="Grey"
                android:textStyle="bold" />

3 个答案:

答案 0 :(得分:1)

我知道的唯一方法是通过Java实现自定义按钮

(在com.my.view包下)

class Button myButton extends Button {
    // Define your button here
}

在.xml文件中,

<com.my.view.myButton>
    android:id="@+id/button_01"
</com.my.view.myButton>

<com.my.view.myButton>
    android:id="@+id/button_02"
</com.my.view.myButton>

答案 1 :(得分:0)

style.xml 文件中,创建一个类似于以下内容的新样式:

<style name="MyButtonStyle1" parent="android:style/Widget.Button">
    <item name="android:background">#e0e0eb</item>
    <item name="android:minWidth">54dip</item>
    <item name="android:minHeight">59dip</item>
    <item name="android:padding">0dip</item>
    <item name="android:textStyle">bold</item>
    <!-- add more attributes here -->
</style>

然后,在您的活动的内容布局XML文件中,将您的自定义样式应用于按钮小部件,如下所示:

<Button
    style="@style/MyButtonStyle1"
    android:id="@android:id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
/>

答案 2 :(得分:0)

在你的res / values / styles.xml文件中找到你的AppTheme并声明一个buttonStyle项目:

<style name="AppTheme" parent="AppBaseTheme">
  <item name="android:buttonStyle">@style/myButton</item>
</style>

然后通过扩展android:style / Widget.Button:

来声明自定义按钮样式
<style name="myButton" parent="@android:style/Widget.Button">
  <item name="android:background">#f81</item>
  <item name="android:textColor">#a39</item>
  <item name="android:text">"Click Me"</item>
</style>

应更改应用中所有按钮的样式。

另外,作为注释,您的应用程序主题在ApplicationManifest.xml中定义,并且是

android:theme="@style/AppTheme"

默认情况下,这就是我们对“AppTheme”风格进行更改的原因。