Quaisquer problemas ou solicitações pull não serão resolvidos. Considere bifurcar sua própria versão se alterações forem necessárias.
Wrapper de efeito cascata para Android Views
compile ' com.balysv:material-ripple:1.0.2 '
Verifique o número da versão mais recente no widget abaixo ou visite Releases
Use o inicializador estático na sua View
(veja os atributos xml
abaixo para personalização)
MaterialRippleLayout . on ( view )
. rippleColor ( Color . BLACK )
. create ();
Ou envolva sua View
com MaterialRippleLayout
em seu arquivo de layout:
< com .balysv.materialripple.MaterialRippleLayout
android : id = " @+id/ripple "
android : layout_width = " match_parent "
android : layout_height = " wrap_content " >
< Button
android : layout_width = " match_parent "
android : layout_height = " wrap_content "
android : layout_gravity = " center "
android : text = " Button inside a ripple " />
</ com .balysv.materialripple.MaterialRippleLayout>
Se estiver usando em um AdapterView
você deve definir rippleInAdapter
como true
Configure usando atributos xml ou setters no código:
app : mrl_rippleOverlay = "true" // if true, ripple is drawn in foreground; false - background
app : mrl_rippleColor = "#ff0000" // color of ripple
app : mrl_rippleAlpha = "0.1" // alpha of ripple
app : mrl_rippleDimension = "10dp" // radius of hover and starting ripple
app : mrl_rippleHover = "true" // if true, a hover effect is drawn when view is touched
app : mrl_rippleRoundedCorners = "10dp" // radius of corners of ripples. Note: it uses software rendering pipeline for API 17 and below
app : mrl_rippleInAdapter = "true" // if true, MaterialRippleLayout will optimize for use in AdapterViews
app : mrl_rippleDuration = "350" // duration of ripple animation
app : mrl_rippleFadeDuration = "75" // duration of fade out effect on ripple
app : mrl_rippleDelayClick = "true" // if true, delays calls to OnClickListeners until ripple effect ends
app : mrl_rippleBackground = "#FFFFFF" // background under ripple drawable; used with rippleOverlay="false"
app : mrl_ripplePersistent = "true" // if true, ripple background color persists after animation, until setRadius(0) is called
Defina um OnClickListener
como MaterialRippleLayout
:
findViewById ( R . id . ripple ). setOnClickListener ( new View . OnClickListener () {
@ Override public void onClick ( View v ) {
// handle me
}
});
Ou se estiver usando um AdapterView
, basta usar OnItemClickListener
Para aqueles desenvolvedores azarados que precisam oferecer suporte a versões anteriores a 14, existe uma maneira de fazer isso.
Você pode usar esta biblioteca adicionalmente com o backport de animação de Jake Wharton (http://nineoldandroids.com/) alterando as importações de import android.animation.*;
para: import com.nineoldandroids.animation.*;
, import android.util.Property
; para import com.nineoldandroids.util.Property;
e no arquivo MaterialRippleLayout.java, chamar a função shouldDelayChildPressedState()
somente se você estiver usando uma API maior que 14.
Balys Valentukevicius
Copyright 2015 Balys Valentukevicius
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.