SparkButton
介绍:
仿Twitter喜欢动画的按钮,之前有相同效果的库。
运行效果:
使用说明:
在root build.gradle 的末尾添加:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
然后添加依赖
dependencies {
compile 'com.github.varunest:sparkbutton:1.0.0'
}
XML
<com.varunest.sparkbutton.SparkButton
android:id="@+id/spark_button"
android:layout_width="40dp"
android:layout_height="40dp"
app:sparkbutton_activeImage="@drawable/active_image"
app:sparkbutton_inActiveImage="@drawable/inactive_image"
app:sparkbutton_iconSize="40dp"
app:sparkbutton_primaryColor="@color/primary_color"
app:sparkbutton_secondaryColor="@color/secondary_color" />
Java
SparkButton button = new SparkButtonBuilder(context)
.setActiveImage(R.drawable.active_image)
.setInActiveImage(R.drawable.inactive_image)
.setDisabledImage(R.drawable.disabled_image)
.setImageSizePx(getResources().getDimensionPixelOffset(R.dimen.button_size))
.setPrimaryColor(ContextCompat.getColor(context, R.color.primary_color))
.setSecondaryColor(ContextCompat.getColor(context, R.color.secondary_color))
.build();
属性
<attr name="sparkbutton_iconSize" format="dimension|reference" />
<attr name="sparkbutton_activeImage" format="reference" />
<attr name="sparkbutton_disabledImage" format="reference" />
<attr name="sparkbutton_primaryColor" format="reference" />
<attr name="sparkbutton_secondaryColor" format="reference" />
<attr name="sparkbutton_pressOnTouch" format="boolean" />
<attr name="sparkbutton_animationSpeed" format="float" />
文档
为了使用SparkButton只需包含XML脚本或者像上面那样使用SparkButtonBuilder构建。
你可以控制的属性如下:
Button Image and Colors
你可以指定按钮的激活与未激活image。如果只指定了激活image,SparkButton只会表现为普通的按钮,否则就是一个switch。
SparkButton使用了两个颜色,primary和secondary(为了更好的效果,primary颜色最好淡于secondary)。
XML
app:sparkbutton_activeImage="@drawable/active_image"
app:sparkbutton_inActiveImage="@drawable/inactive_image"
app:sparkbutton_primaryColor="@color/primaryColor"
app:sparkbutton_secondaryColor="@color/secondaryColor"
Java
SparkButton button = new SparkButtonBuilder(context)
.setActiveImage(R.drawable.active_image)
.setInActiveImage(R.drawable.inactive_image)
.setPrimaryColor(ContextCompat.getColor(context, R.color.primary_color))
.setSecondaryColor(ContextCompat.getColor(context, R.color.secondary_color))
.build();
Animation Speed
你可以指定动画速度增加/减小的分数。
XML
app:sparkbutton_animationSpeed="1.5"
Java
sparkbutton.setAnimationSpeed(1.5f);
Button状态
如果你把SparkButton作为一个switch使用,你可以check/uncheck button。
sparkButton.setChecked(true);
Event Listener
调用setEventListener去监听点击事件。
sparkButton.setEventListener(new SparkEventListener(){
@Override
void onEvent(ImageView button, boolean buttonState) {
if (buttonState) {
// Button is active
} else {
// Button is inactive
}
}
});
Play Animation
如果你想直接播放动画,而不依赖点击事件,执行下面的函数:
sparkButton.playAnimation();
灵感
SparkButton受此项目的启发 : https://github.com/frogermcs/LikeAnimation
已下载
0