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.
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
<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"
<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常用的方法说明