所以我想将LinearLayout
设为看起来像一个按钮。我正在使用LinearLayout
,因为我使用“Font awesome”作为图标,我需要将图标放在按钮内,所以我有一个LinearLayout
,其中有两个TextView
s作为孩子。一个用于图标,另一个用于文本。
我想要的是让LinearLayout
看起来像默认样式按钮,但颜色不同。在棒棒糖和更新的它也应该有涟漪效应。
我设法通过添加backgroundTint
来做到这一点,但它只适用于Marshmallow,在KitKat上按钮具有默认颜色。这是我的代码:
布局:
<LinearLayout
android:id="@+id/btn_register"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
style="@style/MyTheme.Button" >
<TextView
android:id="@+id/ic_register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:text="@string/fa_user_plus"
android:textSize="16dp"
android:paddingRight="4dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:text="Register as a new user"
android:textSize="16dp" />
</LinearLayout>
风格:
<style name="MyTheme.Button" parent="@android:style/Widget.DeviceDefault.Button">
<item name="android:backgroundTint">@color/accent</item>
</style>
答案 0 :(得分:1)
解决方案:我创建了2个不同的背景选择器 - 一个用于API 21,另一个用于旧设备。
抽拉/ btn_red.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="#88FFFFFF" />
<corners android:radius="2dp"/>
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="@color/accent" />
<corners android:radius="2dp"/>
</shape>
</item>
</selector>
可绘制-V21 / btn_red.xml:
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#88FFFFFF"> <!-- The ripple color -->
<!-- the normal bg color will be light white -->
<item>
<shape android:shape="rectangle">
<solid android:color="@color/accent" />
<corners android:radius="2dp"/>
</shape>
</item>
</ripple>
答案 1 :(得分:0)
如果这对您有用:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="103dp"
android:layout_marginTop="46dp"
android:textColor="@android:color/white"
android:background="@drawable/your_icon"
android:gravity="right|center_horizontal"
android:text="Register as a new user" />
您可以根据需要自定义或更改它,使用重力来改变文本的位置。