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