Android點贊效果的實現
阿新 • • 發佈:2018-12-15
先看下點讚的效果圖
首先新增依賴
api 'com.sackcentury:shinebutton:0.2.0'
xml佈局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical"> <Button android:id="@+id/btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:visibility="gone"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="100dp" android:gravity="center"> <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/bt_like" 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.5" app:small_shine_color="#CC9999" app:shine_count="8" app:siShape="@raw/like"/> <com.sackcentury.shinebuttonlib.ShineButton android:layout_width="50dp" android:layout_height="50dp" android:layout_centerInParent="true" android:layout_marginLeft="20dp" android:src="@android:color/darker_gray" android:id="@+id/bt_smile" app:btn_color="@android:color/darker_gray" app:btn_fill_color="#F44336" app:allow_random_color="true" app:siShape="@raw/smile"/> <com.sackcentury.shinebuttonlib.ShineButton android:layout_width="50dp" android:layout_height="50dp" android:layout_marginLeft="20dp" android:layout_centerInParent="true" android:id="@+id/bt_star" app:btn_color="@android:color/darker_gray" app:btn_fill_color="#996699" app:enable_flashing="true" app:shine_size="40dp" app:siShape="@raw/star"/> <com.sackcentury.shinebuttonlib.ShineButton android:layout_width="50dp" android:layout_height="50dp" android:layout_marginLeft="20dp" android:layout_centerInParent="true" android:id="@+id/bt_heart" app:btn_color="@android:color/darker_gray" app:btn_fill_color="#f26d7d" app:siShape="@raw/heart" android:elevation="10dp" /> </LinearLayout> </LinearLayout>
看下屬性說明:
屬性 | Java方法 | 描述 |
siShape | void setShapeResource(int) | 設定原始資源(png) |
btn_color | void setBtnColor(int) | 設定原點顏色 |
btn_fill_color | void setBtnFillColor(int) | 單擊後設置填充顏色 |
allow_random_color | void setAllowRandomColor(boolean) | 允許光澤顏色隨機 |
shine_animation_duration | void setAnimDuration(int) | 設定光澤動畫持續時間 |
big_shine_color | void setBigShineColor (int) | 設定大光澤的顏色 |
click_animation_duration | void setClickAnimDuration(int) | 設定單擊動畫持續時間 |
enable_flashing | void enabaleFlashing (boolean) | 啟用閃光效果 |
shine_count | void setShineCount (int) | 按鈕周圍設定閃耀計數 |
shine_distance_multiple | void setShineDistanceMultiple (float) | 設定距離按鈕的多個距離 |
shine_turn_angle | void setShineTurnAngle(float) | 設定光澤的轉角 |
shine_size | void setShineSize (int) | 按畫素設定光澤大小 |
small_shine_color | void setSmallShineColor(int) | 設定小亮澤顏色 |
small_shine_offset_angle | void setSmallShineOffAngle(float) | 將小光澤的角度偏移設定為大光澤 |
初始化控制元件:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ShineButton btLike = (ShineButton) findViewById(R.id.bt_like);
btLike.init(this);
ShineButton btSmile = (ShineButton) findViewById(R.id.bt_smile);
btSmile.init(this);
ShineButton btHeart = (ShineButton) findViewById(R.id.bt_heart);
btHeart.init(this);
ShineButton btStart = (ShineButton) findViewById(R.id.bt_star);
btStart.init(this);
}
}
github連結:
https://github.com/ChadCSong/ShineButton
另外github上一些優秀的開源專案,純乾貨分享連結: