Android 发现一个炫酷按钮库(ShineButton)

原文地址:https://blog.****.net/Gpwner/article/details/53998171

GitHub地址:https://github.com/ChadCSong/ShineButton

This is a UI lib for Android. Effects like shining.

Android 发现一个炫酷按钮库(ShineButton)

Usage

 shineButton = (ShineButton) findViewById(R.id.shine_button);
 shineButton.init(activity);

or

 ShineButton shineButtonJava = new ShineButton(this);
 shineButtonJava.setBtnColor(Color.GRAY);
 shineButtonJava.setBtnFillColor(Color.RED);
 shineButtonJava.setShapeResource(R.raw.heart);
 shineButtonJava.setAllowRandomColor(true);
 LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100, 100);
 shineButtonJava.setLayoutParams(layoutParams);
 if (linearLayout != null) {
     linearLayout.addView(shineButtonJava);
 }

Simple Usage

Icon shape is made from png mask. Please see raw files.

app:siShape

Default button color.

app:btn_color

Fill button color.

app:btn_fill_color

If this property is true,the effects will become random color shine.

app:allow_random_color

Android 发现一个炫酷按钮库(ShineButton)

 <com.sackcentury.shinebuttonlib.ShineButton
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_centerInParent="true"
                android:src="@android:color/darker_gray"
                android:id="@+id/po_image2"
                app:btn_color="@android:color/darker_gray"
                app:btn_fill_color="@android:color/holo_green_dark"
                app:allow_random_color="false"
                app:siShape="@raw/smile"/>

Complex Usage

Property Java method Description
siShape void setShapeResource(int) Set raw resource (png)
btn_color void setBtnColor(int) Set origin color
btn_fill_color void setBtnFillColor(int) Set fill color after click
allow_random_color void setAllowRandomColor(boolean) Allow shine color random
shine_animation_duration void setAnimDuration(int) Set shine anim duration
big_shine_color void setBigShineColor(int) Set big shine color
click_animation_duration void setClickAnimDuration(int) Set click anim duration
enable_flashing void enableFlashing(boolean) Enable effect like flash
shine_count void setShineCount(int) Set shine count around button
shine_distance_multiple void setShineDistanceMultiple(float) Set multiple of distance to button
shine_turn_angle void setShineTurnAngle(float) Set turn angle of shine
shine_size void setShineSize(int) Set size of shine by pixel
small_shine_color void setSmallShineColor(int) Set small shine color
small_shine_offset_angle void setSmallShineOffAngle(float) Set angle offset of small shine to big shine
app:shine_turn_angle="20"
app:shine_count="15"
app:allow_random_color="true"
app:enable_flashing="true"

Android 发现一个炫酷按钮库(ShineButton)

<com.sackcentury.shinebuttonlib.ShineButton
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_centerInParent="true"
                android:src="@android:color/darker_gray"
                android:id="@+id/po_image1"
                app:btn_color="@android:color/darker_gray"
                app:btn_fill_color="#FF6666"
                app:allow_random_color="false"
                app:enable_flashing="false"
                app:big_shine_color="#FF6666"
                app:click_animation_duration="200"
                app:shine_animation_duration="1500"
                app:shine_turn_angle="10"
                app:small_shine_offset_angle="20"
                app:shine_distance_multiple="1.5f"
                app:small_shine_color="#CC9999"
                app:shine_count="8"
                app:siShape="@raw/like"/>

Requirements

  • Android 4.0+

Code Reference

android-shape-imageview EasingInterpolator

Maven

<dependency>
  <groupId>com.sackcentury</groupId>
  <artifactId>shinebutton</artifactId>
  <version>0.2.0</version>
  <type>aar</type>
</dependency>

Gradle

buildscript {
    repositories {
        mavenCentral()
    }
}
dependencies {
    compile 'com.sackcentury:shinebutton:0.2.0'
}

Further

1, SVG support;
2, Font support;
3, Image support...

 

Credits

iOS lib fave-button Android implement. FaveButton was inspired by Twitter’s Like Heart Animation;

Third Party Bindings

React Native

You may now use this library with React Native via the module here


5.ShineButton常用的方法说明 
Android 发现一个炫酷按钮库(ShineButton)