在Android中为按钮组应用样式
在我的Android应用程序中,我需要为一组按钮应用样式,而不是为每个按钮单独设置样式。大概是这样的:在Android中为按钮组应用样式,android,xml,button,styles,Android,Xml,Button,Styles,在我的Android应用程序中,我需要为一组按钮应用样式,而不是为每个按钮单独设置样式。大概是这样的: <?xml version="1.0" encoding="utf-8"?> <!-- put here style="@ststyle/Button_Style" --> <Button android:id="@+id/button1" android:text="@string/b01" /> <Button android:
<?xml version="1.0" encoding="utf-8"?>
<!-- put here style="@ststyle/Button_Style" -->
<Button android:id="@+id/button1" android:text="@string/b01" />
<Button android:id="@+id/button2" android:text="@string/b02" />
<Button android:id="@+id/button4" android:text="@string/b03" />
<!-- end style -->
您可以像这样为按钮编写样式 style_btn.xml
@可抽出式/btn\U bg
居中
@android:彩色/白色
大胆的
4dp
90dp
将该样式应用于按钮:
您可以像这样为按钮编写样式 style_btn.xml
@可抽出式/btn\U bg
居中
@android:彩色/白色
大胆的
4dp
90dp
将该样式应用于按钮:
如果您需要应用程序中所有按钮的样式,请在应用程序主题样式中提及,然后无需应用每个按钮
<style name="YourTheme" parent="android:Theme.Light">
<item name="android:buttonStyle">@style/Button</item>
</style>
@样式/按钮
如果需要使用样式来指定按钮,则应用于每个按钮
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Button"
android:text="Button" />
如果您需要应用程序中所有按钮的样式,请在应用程序主题样式中提及,然后无需应用每个按钮
<style name="YourTheme" parent="android:Theme.Light">
<item name="android:buttonStyle">@style/Button</item>
</style>
@样式/按钮
如果需要使用样式来指定按钮,则应用于每个按钮
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Button"
android:text="Button" />
我知道我入党晚了,但当我自己试图解决同样的问题时,我偶然发现了这一点 我所做的是: 根据按钮组的方式(例如3),您需要对按钮进行子类化,并创建三个自定义按钮类(见下文) 您可以从自定义类中看到,我已经传递了一个自定义属性。我在my styles.xml中定义了这些样式,并将它们用作参考。请参见下面的my styles.xml:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
<style name="theme1">
<item name="@attr/attrStyle1">@style/CustomButton1</item>
<item name="@attr/attrStyle2">@style/CustomButton2</item>
<item name="@attr/attrStyle3">@style/CustomButton3</item>
<item name="android:background">@color/warning_yellow_colour</item>
</style>
<style name="CustomButton1" parent = "@android:style/Widget.Button">
<item name="android:textColor">@color/white_colour</item>
<item name="android:padding">20dp</item>
<item name="android:background">@color/banner_background_sensor_colour</item>
</style>
<style name="CustomButton2" parent = "@android:style/Widget.Button">
<item name="android:textColor">@color/white_colour</item>
<item name="android:padding">20dp</item>
<item name="android:background">@color/button_red_colour</item>
</style>
<style name="CustomButton3" parent = "@android:style/Widget.Button">
<item name="android:textColor">@color/white_colour</item>
<item name="android:padding">20dp</item>
<item name="android:background">@color/text_blue_colour</item>
</style>
<attr name="attrStyle1" format="reference"/>
<attr name="attrStyle2" format="reference"/>
<attr name="attrStyle3" format="reference"/>
希望这对某人有好处 我知道我入党晚了,但当我自己试图解决同样的问题时,我偶然发现了这一点 我所做的是: 根据按钮组的方式(例如3),您需要对按钮进行子类化,并创建三个自定义按钮类(见下文) 您可以从自定义类中看到,我已经传递了一个自定义属性。我在my styles.xml中定义了这些样式,并将它们用作参考。请参见下面的my styles.xml:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
<style name="theme1">
<item name="@attr/attrStyle1">@style/CustomButton1</item>
<item name="@attr/attrStyle2">@style/CustomButton2</item>
<item name="@attr/attrStyle3">@style/CustomButton3</item>
<item name="android:background">@color/warning_yellow_colour</item>
</style>
<style name="CustomButton1" parent = "@android:style/Widget.Button">
<item name="android:textColor">@color/white_colour</item>
<item name="android:padding">20dp</item>
<item name="android:background">@color/banner_background_sensor_colour</item>
</style>
<style name="CustomButton2" parent = "@android:style/Widget.Button">
<item name="android:textColor">@color/white_colour</item>
<item name="android:padding">20dp</item>
<item name="android:background">@color/button_red_colour</item>
</style>
<style name="CustomButton3" parent = "@android:style/Widget.Button">
<item name="android:textColor">@color/white_colour</item>
<item name="android:padding">20dp</item>
<item name="android:background">@color/text_blue_colour</item>
</style>
<attr name="attrStyle1" format="reference"/>
<attr name="attrStyle2" format="reference"/>
<attr name="attrStyle3" format="reference"/>
希望这对某人有好处
CustomButton1 theme1 = (CustomButton1)findViewById(R.id.theme1);
CustomButton2 theme2 = (CustomButton2)findViewById(R.id.theme2);
CustomButton3 theme3 = (CustomButton3)findViewById(R.id.theme3);