Grav Android Library

Grav adalah library android dari github https://github.com/glomadrian/Grav untuk membuat animasi berdasarkan titik

Untuk menggunakan library ini perlu menambahkan pada build.gradle:

Pada repository

repositories {
maven {
url “http://dl.bintray.com/glomadrian/maven"
}
}

Pada dependency

compile ‘com.github.glomadrian:Grav:1.1’

Library ini menggunakan generator sebagai pembuat objek tertentu, contoh generator yang ada pada grav:
- Point
- Grav
- Color
- Animation
Generator tersebut digabungkan untuk membuat animasinya

Untuk lebih jelasnya penggunaaan per generator adalah sebagai berikut

Point Generator

Dalam layout GravView bisa ditambahkan app:pointGenerator=”com.github.glomadrian.grav.generator.point.****PointGenerator” untuk jenis point generatornya

Point engatur lokasi titik digambar, terdapat kategori penggambaran lokasinya:
-RegularPointGenerator: mengatur lokasi secara cell, tambahan attribut layoutnya
app:pointGenerator=”com.github.glomadrian.grav.generator.point.RegularPointGenerator”
app:regular_cell_size=”200"
app:regular_variance=”20"
-CircularPointGenerator: mirip dengan Regular namun dibuat seperti lingkaran
app:pointGenerator=”com.github.glomadrian.grav.generator.point.CircularPointGenerator”
-PercentPointGenerator: membuat lokasi custom dengan ukuran persen dari width dan height, perlu membuat file untuk menentukan integer-array
app:pointGenerator=”com.github.glomadrian.grav.generator.point.PercentPointGenerator”
app:percent_points_array=”@array/walla_points_percent_points”
Pada arrays.xml
<integer-array name=”sample_points_percent_points”>
<item>10</item> //ini width dari kiri layar
<item>60</item> //ini height dari atas layar

<item>8</item>
<item>30</item>

<item>25</item>
<item>10</item>
</integer-array>

Grav Generator

Dalam layout GravView bisa ditambahkan app:gravGenerator=”com.github.glomadrian.grav.generator.grav.*****Generator” untuk jenis grav

GravGenerator mengatur bentuk titik yang digambar:
-BallGenerator
app:gravGenerator=”com.github.glomadrian.grav.generator.grav.BallGenerator”
app:ball_from_size=”3dp”
app:ball_to_size=”16dp”
-RectangleGenerator
app:gravGenerator=”com.github.glomadrian.grav.generator.grav.RectangleGenerator”
app:rectangle_width=”15dp”
app:rectangle_height=”10dp”

ColorGenerator

Cukup jelas, untuk mengubah warna, kodenya appcolorGenerator=”com.github.glomadrian.grav.generator.paint.*****ColorGenerator”

Terdapat dua jenis:
-SingleColorGenerator
app:colorGenerator=”com.github.glomadrian.grav.generator.paint.SingleColorGenerator”
app:single_color=”@color/colorPrimary
-ArrayColorGenerator
app:colorGenerator=”com.github.glomadrian.grav.generator.paint.ArrayColorGenerator”
app:array_colors=”@array/Spectral

Pada arrays.xml
<string-array name=”Spectral”>
<item>#9E0142</item>
<item>#D53E4F</item>
<item>#F46D43</item>
<item>#FDAE61</item>
<item>#FEE08B</item>
<item>#FFFFBF</item>
<item>#E6F598</item>
<item>#ABDDA4</item>
<item>#66C2A5</item>
<item>#3288BD</item>
<item>#5E4FA2</item>
</string-array>

AnimationGenerator

Mengatur animasi titik, bisa satu atau lebih animasi yang dimasukkan
Untuk hanya satu animasi
app:animationGenerator=”com.github.glomadrian.grav.generator.animation.*****Animator”
Untuk lebih dari satu animasi
app:animationGenerators=”@array/array_reference

<string-array name=”array_reference”>
<item>com.github.glomadrian.grav.generator.animation.PathAnimator</item>
<item>com.github.glomadrian.grav.generator.animation.BallSizeAnimator</item>
</string-array>

Jenis AnimationGenerator:
-ShakeAnimator: menggerakkan dari satu posisi ke posisi lain lalu kembali
app:animationGenerator=” com.github.glomadrian.grav.generator.animation.ShakeAnimator”
//Min animation duration
app:shake_min_duration=”1000"
//Max animation duration
app:shake_max_duration=”3000"
//Direction horizontal or vertical
app:shake_direction=”horizontal”
//The size of the movement
app:shake_variance=”15dp”
-SideToSideAnimator: bergerak dari pojok layar ke pojok layar
app:animationGenerator=”com.github.glomadrian.grav.generator.animation.SideToSideAnimator”
//Min animation duration
app:side_to_side_min_duration=”1000"
//Max animation duration
app:side_to_side_max_duration=”3000"
//Direction leftToRight | rightToLeft | upToDown | downToUp
app:side_to_side_direction=”leftToRight”
//interpolator
side_to_side_interpolator=”interpolator class”
-AlphaAnimator: transparansi
app:animationGenerator=”com.github.glomadrian.grav.generator.animation.AlphaAnimator”
//Min animation duration
app:alpha_min_duration=”1000"
//Max animation duration
app:alpha_max_duration=”3000"
//From and to in a range (0–255)
app:alpha_from=”0"
app:alpha_to=”255"
-BallSizeAnimator
app:animationGenerator=”com.github.glomadrian.grav.generator.animation.BallSizeAnimator”
//Min animation duration
app:ball_size_min_duration=”1000"
//Max animation duration
app:ball_size_max_duration=”3000"
app:ball_size_from_size=”3dp”
app:ball_size_to_size=”8dp”
-PathAnimator: menentukan arah jalur sendiri
<string name=”circle”>
M700,70 C780,70, 980,277, 985,530
C985,783, 780,988, 527,988
C273,988, 68,783, 68,530
C68,277,273,71,527,71 Z
</string>
<integer name=”circle_original_width”>1062</integer>
<integer name=”circle_original_height”>1062</integer>

Penjelasan untuk huruf di depan angka:
-M adalah titik awal titik dibuat dan muncul, dengan format width,height (ingat height diukur dari atas layar, width dari kiri layar)
-L mirip dengan M, namun titik hanya mengarah kesitu, bukan muncul disitu
-C adalah berzier curve. Terdiri dari tiga titik, dimana titik pertama start, titik kedua tarikan lengkung, titik ketiga tujuan akhir, parameter sama dengan M. Titik akan menuju ke pertama secara lurus baru mulai melengkung setelah sampai titik pertama
-Q juga curve seperti C, namun terdiri dari dua titik, dimana titik pertama tarikan lengkung, titik kedua titik akhir,
-Z pada akhir string digunakan untuk transisi dari titik akhir ke titik awal yang ditentukan, menghilangkan ini akan terlihat titik dari akhir lompat ke titik awal, perlu Z untuk efek transisi

)
Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade