Android原生的Toast功能单一,仅仅够日常开发需要,若打算实现生动有趣的消息提示通知,则可以考虑使用Android上第三方开源的项目:NiftyNotification

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代码示例:


package com.example.niftynotification_master;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;@Overrideprotected 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.thumb_slider:effect = Effects.thumbSlider;break;case R.id.jelly:effect = Effects.jelly;break;case R.id.slide_in:effect = Effects.slideIn;break;case R.id.flip:effect = Effects.flip;break;case R.id.slide_on_top: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("#FF444444")// .setIconBackgroundColor("#FFFFFFFF")// .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}}

需要的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/thumb_slider"                style="@style/my_btn"                android:text="THUMB SLIDER" />            <Button                android:id="@+id/jelly"                style="@style/my_btn"                android:text="JELLY" />            <Button                android:id="@+id/slide_in"                style="@style/my_btn"                android:text="SLIDE IN" />            <Button                android:id="@+id/flip"                style="@style/my_btn"                android:text="FLIP" />            <Button                android:id="@+id/slide_on_top"                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>

需要的styles,xml:

<resources>    <!-- Base application theme. -->    <style name="AppBaseTheme" parent="android:Theme.Light.NoTitleBar">        <!-- Customize your theme here. -->    </style>    <style name="AppTheme" parent="AppBaseTheme">        <!-- Customize your theme here. -->    </style>    <style name="my_btn">        <item name="android:layout_width">match_parent</item>        <item name="android:layout_height">wrap_content</item>        <item name="android:background">#44000000</item>        <item name="android:padding">15dp</item>        <item name="android:layout_margin">5dp</item>        <item name="android:textColor">#FFFFFF</item>        <item name="android:onClick">showNotify</item>        <item name="android:textSize">20sp</item>    </style></resources>


更多相关文章

  1. android EditText设置不可写
  2. android 使用html5作布局文件: webview跟javascript交互
  3. android studio调试c/c++代码
  4. IM-A820L限制GSM,WCDMA上网的原理(其他泛泰机型可参考)7.13
  5. 使用NetBeans搭建Android开发环境
  6. 锁屏界面
  7. 关于Android(安卓)Studio3.2新建项目Android(安卓)resource link
  8. Android平台上优秀的开源项目
  9. android(NDK+JNI)---Eclipse+CDT+gdb调试android ndk程序

随机推荐

  1. Android压缩文件成.zip及解压缩.zip文件
  2. Android常用控件的使用方法
  3. android studio R文件找不到
  4. Android 系统资源(字体,声音,视频)的简介
  5. Android也有CSS
  6. Android Studio下载安装
  7. [AndroidTips]Android(安卓)how to check
  8. Android中的四大组件回顾
  9. Android中EventBus的使用
  10. Android(安卓)点击事件冲突之拦截父控件