ParticlesDrawable
Draws random flying particles in space forming constellations.
Min API level 9.
Contains:
ParticlesDrawable
, which is anAnimatable
Drawable
.ParticlesView
, which is aView
.
Both have the same public methods for customization and may be inflated using the same customization xml attributes.
Add to your project
dependencies {
compile 'com.github.doctoror.particlesdrawable:library:[version]'
}
Screenshots
Usage
ParticlesDrawable
usage example
private final ParticlesDrawable mDrawable = new ParticlesDrawable();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_demo);
findViewById(R.id.view).setBackground(mDrawable);
}
@Override
protected void onStart() {
super.onStart();
mDrawable.start();
}
@Override
protected void onStop() {
super.onStop();
mDrawable.stop();
}
Customization
Here is a list of all attributes, set with default values
<com.doctoror.particlesdrawable.ParticlesView
app:minDotRadius="1dp"
app:maxDotRadius="3dp"
app:lineThickness="1dp"
app:lineDistance="86dp"
app:numDots="60"
app:dotColor="@android:color/white"
app:lineColor="@android:color/white"
app:frameDelayMillis="10"
app:stepMultiplier="1"/>
The conventional getters and setters are also available.
Since API 24, you may also customize the Drawable in xml
. For example, create
drawable-v24/particles_120dots.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- Some versions of Android Studio may show false warning,
"Element drawable must be declared", but it works fine when
compiling and running -->
<drawable
class="com.doctoror.particlesdrawable.ParticlesDrawable"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:numDots="120"/>
And inflate, like
mDrawable = (ParticlesDrawable) ContextCompat
.getDrawable(this, R.drawable.particles_120dots);
Configuration Demo
Particle Constellations Live Wallpaper has a great configuration screen which allows you to quickly see through what can you do with the library: