Android 按钮式api 21
我在api 21上看到了按钮的新动画: 但我想用蓝色来实现这一点,我在Drawables文件夹上的buttonstyle.xml中看到了另一个问题,即使用此自定义样式:Android 按钮式api 21,android,button,styles,Android,Button,Styles,我在api 21上看到了按钮的新动画: 但我想用蓝色来实现这一点,我在Drawables文件夹上的buttonstyle.xml中看到了另一个问题,即使用此自定义样式: <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?attr/colorControlHighlight"> <item> <shape xmlns:a
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="2dp" />
<solid android:color="@color/Blue" />
</shape>
</item>
</ripple>
但是我的min API是14,它崩溃了,因为我需要min 21才能使用ripple,我如何才能确定用户是否有android 5可以用蓝色显示此动画,以及用户是否有较低版本,但也可以用蓝色显示正常动画
谢谢 使用图书馆
buttonstyle.xml:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/Blue" >
<!-- @color/Blue is ripple color -->
<!-- item(id=mask): image which will be filled by ripple -->
<item
android:id="@android:id/mask">
<!-- default button background image -->
<inset
android:insetLeft="@dimen/abc_button_inset_horizontal_material"
android:insetTop="@dimen/abc_button_inset_vertical_material"
android:insetRight="@dimen/abc_button_inset_horizontal_material"
android:insetBottom="@dimen/abc_button_inset_vertical_material">
<shape android:shape="rectangle">
<corners android:radius="@dimen/abc_control_corner_material" />
<!-- e0e0e0 is default backround color -->
<!-- this solid element can be removed, but i dont test this -->
<solid android:color="#e0e0e0" />
<padding android:left="@dimen/abc_button_padding_horizontal_material"
android:top="@dimen/abc_button_padding_vertical_material"
android:right="@dimen/abc_button_padding_horizontal_material"
android:bottom="@dimen/abc_button_padding_vertical_material" />
</shape>
</inset>
</item>
<!-- item(none): default button background -->
<item>
<!-- default button background image -->
<inset
android:insetLeft="@dimen/abc_button_inset_horizontal_material"
android:insetTop="@dimen/abc_button_inset_vertical_material"
android:insetRight="@dimen/abc_button_inset_horizontal_material"
android:insetBottom="@dimen/abc_button_inset_vertical_material">
<shape android:shape="rectangle">
<corners android:radius="@dimen/abc_control_corner_material" />
<!-- e0e0e0 is default backround color -->
<solid android:color="#e0e0e0" />
<padding android:left="@dimen/abc_button_padding_horizontal_material"
android:top="@dimen/abc_button_padding_vertical_material"
android:right="@dimen/abc_button_padding_horizontal_material"
android:bottom="@dimen/abc_button_padding_vertical_material" />
</shape>
</inset>
</item>
</ripple>
工作 旧版的api中没有涟漪,但是有没有选择让这两种样式和应用程序根据用户的api选择一种?因为现在,在安卓5仿真器中使用默认样式时,我可以看到API 21效果,如果我在安卓4.4仿真器中打开应用程序,我会使用正常效果,因此可以这样做,我只想更改颜色。谢谢你的回答。
//button is your button
button.setBackgroundDrawable(LollipopDrawablesCompat.getDrawable(getResources(), R.drawable.buttonstyle, getTheme()));
button.setOnTouchListener(new DrawableHotspotTouch((LollipopDrawable) button.getBackground()));