嗨,所以我有点困惑,想知道是否有人能给我指明正确的方向。
去使用Lollipop和Lollipop前的谷歌Play商店
您将在lollipop上看到,可选择视图具有涟漪效应。
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item android:id="@android:id/mask" android:drawable="@android:color/white"/>
<item android:drawable="@color/colorAccentWith92PercentOpacity"/>
</ripple>
Android:background=“?attr/selectableitembackground”
来获得Lollipop前的高亮效果,但这覆盖了我的背景。我怎么能把这个设置在我当前的背景之上呢?
另外,我必须为我的应用程序中的每一种按钮创建一个可抽吸的涟漪(在抽吸-V21)吗?如何为回收器视图项执行此操作?
我不想为预Lollipop涟漪,我在问开发人员如何有效地使他们的按钮在Lollipop上做涟漪和高光效果在预Lollipop上
在主题中定义ColorControlHighlight
,只要使用默认的appcompat-v7按钮,高亮颜色就可以使用。
这是一个例子,我如何后移材料按钮样式与一点交叉褪色动画和阴影,而不使用外部库。愿它在你的路上帮助你。
只要该按钮是白色文本覆盖在深色背景(@color/control_normal
)上,并带有浅色高亮:
<style name="AppTheme" parent="Base.AppTheme">
<item name="buttonStyle">@style/Widget.AppTheme.Button</item>
</style>
<!-- Some numbers pulled from material design. -->
<integer name="button_pressed_animation_duration">100</integer>
<integer name="button_pressed_animation_delay">100</integer>
<style name="Widget.AppTheme.Button" parent="Widget.AppCompat.Button">
<!-- On Lollipop you can define theme via style. -->
<item name="android:theme">@style/ThemeOverlay.AppTheme.Button</item>
</style>
<style name="ThemeOverlay.AppTheme.Button" parent="ThemeOverlay.AppCompat.Dark">
<!-- The magic is done here. -->
<item name="colorButtonNormal">@color/control_normal</item>
</style>
在Lollipop之前,它变得很棘手。
<style name="Widget.AppTheme.Button" parent="Widget.AppCompat.Button">
<item name="android:background">@drawable/button_normal_background</item>
</style>
Thi是整个按钮的复合可拉拔。
<inset
xmlns:android="http://schemas.android.com/apk/res/android"
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">
<layer-list>
<!-- Shadow. -->
<item
android:drawable="@drawable/button_shadow"
android:top="-0dp"
android:bottom="-1dp"
android:left="-0dp"
android:right="-0dp"/>
<item
android:drawable="@drawable/button_shadow_pressable"
android:top="-0dp"
android:bottom="-3dp"
android:left="-1dp"
android:right="-1dp"/>
<!-- Background. -->
<item android:drawable="@drawable/button_shape_normal"/>
<!-- Highlight. -->
<item>
<selector
android:enterFadeDuration="@integer/button_pressed_animation_duration"
android:exitFadeDuration="@integer/button_pressed_animation_duration">
<item
android:drawable="@drawable/button_shape_highlight"
android:state_focused="true"
android:state_enabled="true"/>
<item
android:drawable="@drawable/button_shape_highlight"
android:state_pressed="true"
android:state_enabled="true"/>
<item
android:drawable="@drawable/button_shape_highlight"
android:state_selected="true"
android:state_enabled="true"/>
<item android:drawable="@android:color/transparent"/>
</selector>
</item>
<!-- Inner padding. -->
<item android:drawable="@drawable/button_padding"/>
</layer-list>
</inset>
这是未按下时的阴影。
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="3dp"
android:bottomRightRadius="3dp"
android:topLeftRadius="2dp"
android:topRightRadius="2dp"/>
<solid android:color="#2000"/>
</shape>
<selector
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="UnusedAttribute"
android:enterFadeDuration="@integer/button_pressed_animation_duration"
android:exitFadeDuration="@integer/button_pressed_animation_duration">
<item
android:state_pressed="true"
android:state_enabled="true">
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="5dp"
android:bottomRightRadius="5dp"
android:topLeftRadius="3dp"
android:topRightRadius="3dp"/>
<solid android:color="#20000000"/>
</shape>
</item>
<item android:drawable="@android:color/transparent"/>
</selector>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/abc_control_corner_material"/>
<solid android:color="@color/control_normal"/>
</shape>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/transparent"/>
<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>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/abc_control_corner_material"/>
<solid android:color="@color/control_highlight"/>
</shape>
如何实现谷歌材料设计指南中描述的“凸起按钮”和“扁平按钮”? 凸起的按钮为大多数平面布局增加了维度。他们强调 在工具栏和对话框中使用平面按钮,以避免过度分层。 资料来源:http://www.google.com/design/spec/components/buttons.html
我在这里检查了一大堆答案,仍然没有骰子。Android Studio预览显示阴影,但没有显示5.1.1 Nexus 7。 这是我的XML 所以我使用了cardUseCompatPadding(也在这里),检查了文档,确保卡片有边距。。。。没有骰子。 我在https://gist.github.com/tigerhawkvok/0ca3d1f402afa29642d5发布了整个XML文件。 帮助
我在我的应用程序中使用了Android设计库的浮动动作按钮,它在Lollipop和以上版本上工作良好,但在Lollipop之前的版本(4.0-4.2.2)上崩溃了。我真的卡住了,弄不清这个问题。 错误:
我使用矢量绘图在Android之前Lollipop和这些是我的一些库和工具版本: Android Studio: 2.0 AndroidGradle插件 构建工具:23.0.2 Android支持库:23.3.0 我在我的应用级别 还值得一提的是,我使用一个额外的绘图,如LayerDrawable(layer_list),如Android官方博客中所述(链接此处),用于为 你会发现直接引用应用程序
看起来在Android 4.0和Lollipop上不起作用。正如您在下图中看到的,在Android Lollipopo上缺少阴影,而在Android 4.1.1上它是方形的:/ 有人面临这个问题吗? 库版本:
我有一个带有Android21的Nexus5设备。我正在测试我的项目在它上没有问题。但是,如果我在一个带有Google API 19的模拟器上进行测试,它会显示错误。如果它在Lollipop上运行良好,怎么会出现这个错误呢?我甚至用索尼4.4设备问我的朋友,他的手机也会崩溃。我将编译SDK版本设置为21版,将构建工具设置为21.1.2版。我尝试了gradle clean,我正在Android St