Como Usar A Biblioteca Moritz-wundke/android-page-curl
Neste tutorial, você vai aprender como usar a biblioteca moritz-wundke/android-page-curl para criar um efeito de viragem de página realista em aplicativos Android, cobrindo desde a configuração até recursos avançados.
O que você vai criar com android-page-curl
A biblioteca moritz-wundke/android-page-curl permite simular o comportamento físico de livros e revistas em telas touch, com sombras, curvas e animações que lembram o movimento de uma folha virando. O resultado final é uma interface visualmente impressionante, ideal para apps de livros, catálogos, manuais ou qualquer aplicativo que precise transmitir uma experiência de leitura natural e intuitiva.
Requisitos e ferramentas necessárias
Antes de começar a integrar como usar a biblioteca moritz-wundke/android-page-curl, prepare seu ambiente e projeto com os itens abaixo.

- Android Studio instalado em sua máquina, com pelo menos a versão estável mais recente.
- Um dispositivo físico ou emulador com Android 4.0 (API level 14) ou superior, já que a biblioteca faz uso de recursos modernos de renderização.
- Conhecimento básico de Java ou Kotlin, além de familiaridade com ciclos de vida de atividades Android (Activities) e fragments.
- Acesso a uma conta no repositório JitPack ou ao código-fonte no GitHub, para adicionar a dependência da biblioteca ao seu projeto.
Como adicionar a dependência ao projeto
O primeiro passo para usar moritz-wundke/android-page-curl é incluir a biblioteca no seu build.gradle. Existem duas formas comuns de fazer isso, via JitPack ou clonando o repositório diretamente.
- Usando JitPack (recomendado):
- Adicione o repositório JitPack no seu arquivo build.gradle (Project-level):
allprojects { repositories { maven { url 'https://jitpack.io' } } }- No build.gradle (Module-level, geralmente app/build.gradle), inclua a dependência:
implementation 'com.github.moritz-wundke:android-page-curl:1.1.0'
- Sincronize seu projeto para que o Gradle baixe e adicione a biblioteca automaticamente.
- Usando o código fonte diretamente:
- Clone o repositório moritz-wundke/android-page-curl para sua máquina.
- Importe o módulo da biblioteca para o seu projeto no Android Studio (File > New > Import Module).
- Adicione a dependência do módulo importado no build.gradle do app:
implementation project(':android-page-curl')- Sincronize o projeto novamente.
Configurando a atividade principal
Agora que a biblioteca está no seu projeto, você pode criar a atividade que exibirá as páginas com o efeito de curl. Esta é a etapa central para entender como usar a biblioteca moritz-wundke/android-page-curl na prática.
- Crie uma nova Activity no Android Studio, por exemplo, BookActivity.
- No layout dessa activity, adicione o PageCurlView, que é a view personalizada da biblioteca:
<br.com.moritzwundke.pagecurl.PageCurlView
android:id="@+id/pageCurlView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
- Na Activity, obtenha referência do PageCurlView e configure as páginas:
PageCurlView pageCurlView = findViewById(R.id.pageCurlView);
pageCurlView.setPageProvider(new PageProvider() {
@Override
public int getPageCount() {
return quantidadeDePaginas;
}
@Override
public void onDrawPage(Bitmap bitmap, int position, float width, float height) {
// Desenhe o conteúdo da página aqui, por exemplo com Canvas
Canvas canvas = new Canvas(bitmap);
canvas.drawColor(Color.WHITE);
// Desenhe texto, imagens ou outros elementos na página
}
});
- O método onDrawPage é chamado sempre que uma página precisa ser renderizada. Aqui você pode desenhar texto, imagens ou qualquer outro conteúdo visual para cada posição da página.
Personalizando a animação e o estilo
Uma das vantagens de usar como usar a biblioteca moritz-wundke/android-page-curl é a capacidade de personalizar quase todos os aspectos da interação e visualização.

- Velocidade da curva: Ajuste a suavidade e a rapidez da viragem com setTurnSpeed().
- Sombra e cor: Defina a cor e intensidade da sombra da página com setShadowColor() e setShadowIntensity().
- Toque e movimento: A biblioteca já lida com eventos de touch para simular a curvatura natural da folha, mas você pode limitar ângulos de rotação ou habilitar/desabilitar a interação via setEnableTouch().
- Estados da página: Responda a eventos como página virada ou arrasto usando listeners, permitindo salvar progresso ou disparar ações no momento certo.
Perguntas frequentes
Posso usar imagens como conteúdo de página com android-page-curl?
Sim, você pode carregar Bitmap e desenhá-los dentro do método onDrawPage, permitindo exibir fotos, ilustrações ou qualquer outra imagem em cada página.
É necessário implementar PageProvider do zero ou existem exemplos prontos?
Você precisa implementar a interface PageProvider, mas a biblioteca oferece exemplos claros no repositório e na documentação, facilitando a adaptação ao seu conteúdo específico.
Funciona bem em dispositivos mais antigos com Android 4.0?
Sim, a biblioteca foi projetada para funcionar a partir do Android 4.0 (API 14), embora o desempenho possa variar em dispositivos muito antigos devido ao custo de renderização de sombras e curvas.

Posso combinar android-page-curl com outros layouts ou bibliotecas de rolagem?
É possível, mas requer cuidado para evitar conflitos de touch; normalmente o PageCurlView ocupa toda a tela ou parte dela de forma exclusiva para melhor experiência de usuário.
Android Page Curl Video - II
Android Page curl.