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.

Book Page Curl In Android Studio || *Awesome Android tutorial in Bangla ...
Book Page Curl In Android Studio || *Awesome Android tutorial in Bangla ...
  • 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.

  1. Usando JitPack (recomendado):
    1. Adicione o repositório JitPack no seu arquivo build.gradle (Project-level):
    allprojects { repositories { maven { url 'https://jitpack.io' } } }
    1. No build.gradle (Module-level, geralmente app/build.gradle), inclua a dependência:
    implementation 'com.github.moritz-wundke:android-page-curl:1.1.0'
    1. Sincronize seu projeto para que o Gradle baixe e adicione a biblioteca automaticamente.
  2. Usando o código fonte diretamente:
    1. Clone o repositório moritz-wundke/android-page-curl para sua máquina.
    2. Importe o módulo da biblioteca para o seu projeto no Android Studio (File > New > Import Module).
    3. Adicione a dependência do módulo importado no build.gradle do app:
    implementation project(':android-page-curl')
    1. 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.

  1. Crie uma nova Activity no Android Studio, por exemplo, BookActivity.
  2. 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" />
  1. 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
    }
});
  1. 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.

How to make page curl effect like book in Android Kotlin in easiest way ...
How to make page curl effect like book in Android Kotlin in easiest way ...
  • 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.

How to Add Page Curl Animation Between Images in Android? - GeeksforGeeks
How to Add Page Curl Animation Between Images in Android? - GeeksforGeeks

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.