对于android样式技术,我还是比较陌生,我想将我的头放在可重复使用的组件周围。我的应用程序有许多分散在其视图层次结构中的按钮,它们几乎完全相同(可变字体颜色和按钮颜色)。是否可以定义一个按钮可绘制对象,然后将其应用不同的样式,例如,一个按钮具有一个可绘制的定义,将其作为背景应用到Button xml属性,例如<Button> android:background="@drawable/basic_btn"</Button>
,然后自定义,例如通过样式设置按钮颜色,例如
<Button
style="@style/Button.Green"
android:background="@drawable/basic_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
然后,如果我想使用相同的可绘制对象作为蓝色按钮,则可以设置以下内容:
<Button
style="@style/Button.Blue"
android:background="@drawable/basic_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
这可能吗?尝试此操作时,我目前没有得到想要的结果。
编辑答案:
回想一下我的帖子,我认为我对最初的问题描述得不够好,我感谢在此之间做出答复的每个人。我最初的问题是尝试将不同的<styles>
应用于可绘制对象以实现不同的背景颜色,而实际上并没有更改背景颜色。我的解决方案是这样的。
定义可绘制形状:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#ffffff"/>
<corners android:radius="3dp" />
下一步,将可绘制对象指定为背景
<Button style="@style/Button.basic
android:background="@drawable/btn_basic"
/>
现在要诀窍:
<Button style="@style/Button.basic
android:background="@drawable/btn_basic"
android:backgroundTint="@color/seafoam"
/>
默认情况下,backgroundTint似乎在可绘制对象的顶部添加了颜色。这使我可以定义一个形状,但是在xml文件中使用时可以对其应用任何颜色。 backgroundTint
答案 0 :(得分:0)
像这样使用TextView:-
<TextView
android:id="@+id/reviewsTitleTxt"
style="@style/txt_style_16sp_white_color_ffffff"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAllCaps="true"
android:gravity="center"
android:text="@string/reviews_txt"
android:layout_gravity="center_vertical"/>
Where Style file is:-
Define style in style file
<style name="txt_style_16sp_white_color_ffffff">
<item name="android:textSize">@dimen/txt_size_16sp</item>
<item name="android:textColor">@color/white_color_ffffff</item>
</style>
答案 1 :(得分:0)
由于我们已发表评论,您无法通过发布的答案解决此问题,因此我将尽力帮助您。
首先,您应该在@style/
.xml
第二,为每个按钮定义一个@drawable/
作为背景:
背景可绘制:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/button_round_radius"/>
<solid android:color="@color/background_color"/>
</shape>
不好的是,您必须创建一个具有相同属性的新drawable
才能更改颜色。
还要研究已经创建的主题/样式,这可能会帮助您参考此答案。
现在按钮的XML声明上:
<Button
style="@style/YourCommonAttributesStyling"
android:background="@drawable/a_drawable_shape_like_the_above"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />