- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
嗨,所以我有点困惑,想知道是否有人能指出我正确的方向。
在 Lollipop 和 pre-lollipop 上使用 Google Play 商店
您会在 Lollipop 上看到可选择的 View 具有涟漪效应。
在 pre-lollipo 上,您会得到这种高光效果。
这是怎么做到的?
目前在我的应用程序中,我有一个包含此选择器的 drawable-v21 目录
它基本上在我的背景上产生涟漪
<?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"
为了在 pre-lollipop 上获得高亮效果,但这会覆盖我的背景。我怎样才能将它设置在我当前的背景之上?
我还必须为我的应用程序中的每种按钮创建一个波纹可绘制对象(在 drawble-v21 中)吗?我将如何为回收商查看项目执行此操作?
是什么让这个问题与众不同
我不希望 pre-lollipop 产生涟漪 我想问的是开发者如何有效地让他们的按钮在 lollipop 上产生涟漪并在 pre-lollipop 上产生高光效果
最佳答案
在您的主题中定义 colorControlHighlight
,只要您使用默认的 appcompat-v7 按钮,高亮颜色就应该开箱即用。
这是一个示例,说明我如何在不使用外部库的情况下向后移植 Material 按钮样式和一些淡入淡出动画和阴影。愿它对您有所帮助。
如果按钮是深色背景上的白色文本 (@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>
Lollipop 的按钮样式,它理解主题叠加并默认使用波纹。让我们用适当的颜料为波纹着色:
<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>
这是整个按钮的复合绘图。
<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>
只是额外的填充以与 Material 按钮完全一致。
<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>
@color/control_highlight
可以指向
@color/ripple_material_dark
- 半透明白色,在深色背景上使用@color/ripple_material_light
- 半透明黑色,在浅色背景上使用关于Lollipop 上的 Android Button Ripple 并在 pre lollipop 上突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32587249/
我正在尝试设计以下由 Fulladers 制成的 Ripple Carry Adder。到目前为止,我尝试了很多,但我正在为 Chisel 语法而苦苦挣扎。有人可以帮我指出我做错了什么吗?这是我的代码
我正在寻找如下所示的效果 我无法命名效果,因此无法在线查找任何资源。它看起来像一个涟漪,但当我搜索它时,我发现的只是按钮等上的涟漪。 有人有关于该主题的任何资源吗? 谢谢 最佳答案 您的搜索无效,因为
Apach cordova 的新手,试图制作一个简单的应用程序。这是使用 Ripple(用于 phonegab/cordova 仿真)在 google chrome 中查看的结果 这是我点击按钮时的结
我目前正在离散数学课上做一个项目,我们必须编码: 1.) RippleCarryAdder:它是一个用于添加固定大小的 5 位整数的电路。参数: x_array: operand 1, i.e. an
我正在尝试为我的应用程序中的卡片创建简单的涟漪效果。它工作得很好,但它也在响应容器外的鼠标事件: 代码如下所示: ... ...
我正在尝试模仿这种效果: 但我做不到,我一直在这样做: 最佳答案 您不需要任何自定义背景,只需使用像这样的 Im
用于检查当前网络连接的标准 PhoneGap API(见下文)似乎没有更新它在 Ripple Emulator 中的结果。当我更改连接类型并执行 checkConnection() 时,它会返回第一次
有没有办法检测我的应用程序当前正在 Ripple Emulator 上运行,而不是在真实设备上运行?我希望一些解决方法代码仅在模拟器上运行。 最佳答案 您可以检查涟漪实例是否可用:if(typeof
我使用 Visual Studio 2015 RC 创建了一个 Ionic (Apache Cordova) 应用程序。我在它自己的解决方案文件中创建了它,我可以使用 Ripple 运行它。 现在我想
我想创建一个带有波纹动画的类似按钮的组件,它看起来像这样: Button 在过去,这工作正常,因为当我点击这个自定义元素时,我实际上点击了 material-ripple 并且点击事件冒泡到宿主元素
如何将textView的一部分背景设置为具有波纹效果的可绘制对象? spannableString.setSpan( BackgroundColorSpan(ANYCOLOR)
我正在尝试在 View 中的触摸事件上创建 android L 预览“波纹”效果。如果我使用此代码作为按钮工作: public class MyButton extends Button {
https://github.com/sirxemic/jquery.ripples/ 我玩过这个 ripples jQuery 插件,虽然我只是个新手,但我似乎找不到在特定区域(例如 a 或其他东西
我正在尝试编写一个函数,该函数将接受数组长度,并返回“波纹输出”数组。 例如: rippleOut(3) 将返回 [0,1,0] rippleOut(6) 将返回 [0,1,2,2,1,0] 这就是我
我正在设计我的自定义搜索栏。我想让拇指透明,但它仍然有涟漪效应。有人有什么建议吗? 最佳答案 设置 android:background="@null"这应该会关闭搜索栏的涟漪效应。 关于Androi
我正在使用 MaterializeCSS ( http://materializecss.com/ ) 构建我的网站 我想知道如何手动触发特定控件的 Wave/Ripple 效果,例如: “触发特定按
我现在正尝试使用下面的代码制作 Ripple Animation 通过这段代码我每次都在相同的位置获得动画 CATransition *animation = [CATransition animat
我正在尝试为 Android TV 和 Amazon FireTV 应用程序(通过 DPAD 导航)中的按钮实现涟漪效果背景。我正在使用 AppCompat,但由于默认按钮样式都使用波纹,我现在使用没
如何添加 mat-ripple指令到我创建的自定义指令的主机元素?关键是要有 mat-ripple自动添加到我添加的任何元素 my-custom-directive也是。 所以如果我添加 Button
我正在使用 jquerymobile/phonegap/cordova(2.0) 开发移动应用程序。我尝试从流 (xml) 下载一些文件并将它们存储在本地。此行为仅出现在我用于调试的 chrome 浏
我是一名优秀的程序员,十分优秀!