Estou tentando adicionar uma animação de ondulação ao clicar no botão. Eu gostei abaixo, mas requer minSdKVersion para 21.
ripple.xml
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item>
<shape android:shape="rectangle">
<solid android:color="?android:colorAccent" />
</shape>
</item>
</ripple>
Botão
<com.devspark.robototextview.widget.RobotoButton
android:id="@+id/loginButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/ripple"
android:text="@string/login_button" />
Quero torná-lo compatível com a biblioteca de design.
Como isso pode ser feito?
android
material-design
N Sharma
fonte
fonte
?attr:
vez de fazer?android:attr
referência à biblioteca de suporte da v7, que, supondo que você o use, oferece compatibilidade retroativa com a API 7. Consulte: developer.android.com/tools/support-library/features. html # v7Anteriormente, votei para encerrar esta questão como fora de tópico, mas, na verdade, mudei de idéia, pois é um efeito visual bastante agradável que, infelizmente, ainda não faz parte da biblioteca de suporte. Provavelmente aparecerá em atualizações futuras, mas não há prazo anunciado.
Felizmente, existem poucas implementações personalizadas já disponíveis:
incluindo conjuntos de widgets com temas Materlial compatíveis com versões mais antigas do Android:
para que você possa experimentar um desses ou o google para outros "widgets de material" ou mais ...
fonte
Eu fiz uma classe simples que cria botões de ondulação, eu nunca precisei dela no final, então não é a melhor, mas aqui está:
EDITAR
Como muitas pessoas estão procurando algo assim, criei uma classe que pode fazer com que outras visualizações tenham o efeito cascata:
fonte
addRippleToView
para adicionar o efeito cascata. Sim fazer cada exibição noRecyclerView
umRippleViewCreator
Às vezes, você tem um plano de fundo personalizado; nesses casos, uma solução melhor é usar
android:foreground="?selectableItemBackground"
fonte
É muito simples ;-)
Primeiro, você deve criar dois arquivos desenháveis, um para a versão antiga da API e outro para a versão mais recente, é claro! Se você criar o arquivo extraível para a versão mais recente da API, o Android Studio sugere que você crie um antigo automaticamente. e, finalmente, defina esse desenho para sua visualização em segundo plano.
Exemplo de drawable para a nova versão da API (res / drawable-v21 / ripple.xml):
Exemplo de drawable para a versão antiga da API (res / drawable / ripple.xml)
Para obter mais informações sobre o ripple drawable, visite: https://developer.android.com/reference/android/graphics/drawable/RippleDrawable.html
fonte
Às vezes, essa linha pode ser usada em qualquer layout ou componente.
Como.
fonte