生动有趣的动画Toast--第三方开源--NiftyNotification

时间:2024-04-15 01:51:28

生动有趣的动画Toast--第三方开源--NiftyNotification

NiftyNotification在github上的项目主页是:https://github.com/sd6352051/NiftyNotification
NiftyNotification本身又依赖于另外一个github上的第三方开源项目NineOldAndroids,NineOldAndroids在github上的项目主页是:https://github.com/JakeWharton/NineOldAndroids
正确添加NineOldAndroids引用后,即可直接使用NiftyNotification。简单期间,甚至可以直接将NiftyNotification的单个jar包下载后加入到自己的项目libs中,然后直接使用。
NiftyNotification无需配置xml文件,只需像Android原生的Toast那样写上层Java代码即可,NiftyNotification的Java代码写法简单,可设置的参数丰富,可定制性强,摘录NiftyNotification项目中的部分Java代码示例:

activity_main.xml:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#34495E"
android:orientation="vertical"
tools:context=".MainActivity" > <TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="#000000"
android:gravity="center"
android:text="Nifty Modal Notification Effects"
android:textColor="#FFFFFF" /> <ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/title"
android:scrollbars="none" > <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dp" > <Button
android:id="@+id/scale"
style="@style/my_btn"
android:text="SCALE" /> <Button
android:id="@+id/thumbSlider"
style="@style/my_btn"
android:text="THUMB SLIDER" /> <Button
android:id="@+id/jelly"
style="@style/my_btn"
android:text="JELLY" /> <Button
android:id="@+id/slidein"
style="@style/my_btn"
android:text="SLIDE IN" /> <Button
android:id="@+id/flip"
style="@style/my_btn"
android:text="FLIP" /> <Button
android:id="@+id/slideOnTop"
style="@style/my_btn"
android:text="SLIDE ON TOP" /> <Button
android:id="@+id/standard"
style="@style/my_btn"
android:text="STANDARD" />
</LinearLayout>
</ScrollView> <RelativeLayout
android:id="@+id/mLyout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/title"
android:clipChildren="true" >
</RelativeLayout> </RelativeLayout>

MainActivity.java:

 package com.gitonway.lee.niftynotification;

 import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Toast; import com.gitonway.lee.niftynotification.lib.Configuration;
import com.gitonway.lee.niftynotification.lib.Effects;
import com.gitonway.lee.niftynotification.lib.NiftyNotificationView; public class MainActivity extends Activity {
private Effects effect; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} public void showNotify(View v){ String msg="Today we’d like to share a couple of simple styles and effects for android notifications."; switch (v.getId()){
case R.id.scale:effect=Effects.scale;break;
case R.id.thumbSlider:effect=Effects.thumbSlider;break;
case R.id.jelly:effect=Effects.jelly;break;
case R.id.slidein:effect=Effects.slideIn;break;
case R.id.flip:effect=Effects.flip;break;
case R.id.slideOnTop:effect=Effects.slideOnTop;break;
case R.id.standard:effect=Effects.standard;break;
} // NiftyNotificationView.build(this,msg, effect,R.id.mLyout)
// .setIcon(R.drawable.lion) //You must call this method if you use ThumbSlider effect
// .show(); // You can configure like this
// The default Configuration cfg=new Configuration.Builder()
.setAnimDuration(700)
.setDispalyDuration(1500)
.setBackgroundColor("#FFBDC3C7")
.setTextColor("#9C27B0")
.setIconBackgroundColor("#42A5F5")
.setTextPadding(5) //dp
.setViewHeight(48) //dp
.setTextLines(2) //You had better use setViewHeight and setTextLines together
.setTextGravity(Gravity.CENTER) //only text def Gravity.CENTER,contain icon Gravity.CENTER_VERTICAL
.build();
//
NiftyNotificationView.build(this,msg, effect,R.id.mLyout,cfg)
.setIcon(R.drawable.lion) //remove this line ,only text
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//add your code
}
})
.show(); // show(boolean) allow duplicates or showSticky() sticky notification,you can call removeSticky() method close it
} }