zoukankan      html  css  js  c++  java
  • Android动画效果生动有趣的通知NiftyNotification(Android Toast替代品)

    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代码即可

     1 package com.gitonway.lee.niftynotification;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 import android.view.View;
     6 import com.gitonway.lee.niftynotification.lib.Effects;
     7 import com.gitonway.lee.niftynotification.lib.NiftyNotificationView;
     8 
     9 public class MainActivity extends Activity {
    10     private Effects effect;
    11 
    12     @Override
    13     protected void onCreate(Bundle savedInstanceState) {
    14         super.onCreate(savedInstanceState);
    15         setContentView(R.layout.activity_main);
    16     }
    17 
    18     public void showNotify(View v) {
    19 
    20         String msg = "今天天气不错,心情也很好啊 !";
    21 
    22         switch (v.getId()) {
    23         case R.id.scale:
    24             effect = Effects.scale;
    25             break;
    26         case R.id.thumbSlider:
    27             effect = Effects.thumbSlider;
    28             break;
    29         case R.id.jelly:
    30             effect = Effects.jelly;
    31             break;
    32         case R.id.slidein:
    33             effect = Effects.slideIn;
    34             break;
    35         case R.id.flip:
    36             effect = Effects.flip;
    37             break;
    38         case R.id.slideOnTop:
    39             effect = Effects.slideOnTop;
    40             break;
    41         case R.id.standard:
    42             effect = Effects.standard;
    43             break;
    44         }
    45 
    46         NiftyNotificationView.build(this, msg, effect, R.id.mLyout).setIcon(R.drawable.lion) // You
    47                                                                                                 // must
    48                                                                                                 // call
    49                                                                                                 // this
    50                                                                                                 // method
    51                                                                                                 // if
    52                                                                                                 // you
    53                                                                                                 // use
    54                                                                                                 // ThumbSlider
    55                                                                                                 // effect
    56                 .show();
    57 
    58         // You can configure like this
    59         // The default
    60 
    61         // Configuration cfg=new Configuration.Builder()
    62         // .setAnimDuration(700)
    63         // .setDispalyDuration(1500)
    64         // .setBackgroundColor("#FFBDC3C7")
    65         // .setTextColor("#FF444444")
    66         // .setIconBackgroundColor("#FFFFFFFF")
    67         // .setTextPadding(5) //dp
    68         // .setViewHeight(48) //dp
    69         // .setTextLines(2) //You had better use setViewHeight and setTextLines
    70         // together
    71         // .setTextGravity(Gravity.CENTER) //only text def
    72         // Gravity.CENTER,contain icon Gravity.CENTER_VERTICAL
    73         // .build();
    74         //
    75         // NiftyNotificationView.build(this,msg, effect,R.id.mLyout,cfg)
    76         // .setIcon(R.drawable.lion) //remove this line ,only text
    77         // .setOnClickListener(new View.OnClickListener() {
    78         // @Override
    79         // public void onClick(View view) {
    80         // //add your code
    81         // }
    82         // })
    83         // .show(); // show(boolean) allow duplicates or showSticky() sticky
    84         // notification,you can call removeSticky() method close it
    85     }
    86 
    87 }

    xml:

     1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:background="#34495E"
     6     android:orientation="vertical"
     7     tools:context=".MainActivity">
     8 
     9     <TextView
    10         android:id="@+id/title"
    11         android:layout_width="match_parent"
    12         android:layout_height="48dp"
    13         android:background="#000000"
    14         android:textColor="#FFFFFF"
    15         android:gravity="center"
    16         android:text="Nifty Modal Notification Effects" />
    17     <ScrollView
    18         android:layout_width="match_parent"
    19         android:layout_height="wrap_content"
    20         android:layout_below="@+id/title"
    21         android:scrollbars="none">
    22         <LinearLayout
    23             android:layout_width="match_parent"
    24             android:layout_height="wrap_content"
    25             android:orientation="vertical"
    26             android:padding="5dp">
    27 
    28             <Button
    29                 android:id="@+id/scale"
    30                 style="@style/my_btn"
    31                 android:text="SCALE"
    32                 />
    33             <Button
    34                 android:id="@+id/thumbSlider"
    35                 style="@style/my_btn"
    36                 android:text="THUMB SLIDER"
    37                 />
    38             <Button
    39                 android:id="@+id/jelly"
    40                 style="@style/my_btn"
    41                 android:text="JELLY"
    42                 />
    43             <Button
    44                 android:id="@+id/slidein"
    45                 style="@style/my_btn"
    46                 android:text="SLIDE IN"
    47                 />
    48             <Button
    49                 android:id="@+id/flip"
    50                 style="@style/my_btn"
    51                 android:text="FLIP"
    52                 />
    53             <Button
    54                 android:id="@+id/slideOnTop"
    55                 style="@style/my_btn"
    56                 android:text="SLIDE ON TOP"
    57                 />
    58             <Button
    59                 android:id="@+id/standard"
    60                 style="@style/my_btn"
    61                 android:text="STANDARD"
    62                 />
    63         </LinearLayout>
    64     </ScrollView>
    65     <RelativeLayout
    66         android:id="@+id/mLyout"
    67         android:layout_below="@+id/title"
    68         android:layout_width="match_parent"
    69         android:layout_height="match_parent"
    70         android:clipChildren="true"
    71         >
    72 
    73     </RelativeLayout>
    74 </RelativeLayout>

    运行效果图:

  • 相关阅读:
    Python集成开发环境搭建
    Windows10 解决 “/”应用程序中的服务器错误
    Windows系统清除远程连接记录的方法
    C# 处理DateTime算法,取某月第1天及最后一天
    SQL语句
    3389远程连接爆破实战
    SQL Server常用SQL集合
    VS2013、VS2015中,新建项目没有看到解决方案的问题(已解决)
    我的黑苹果装机篇
    C# 使用GZip对字符串压缩和解压
  • 原文地址:https://www.cnblogs.com/labixiaoxin/p/5013193.html
Copyright © 2011-2022 走看看