最近在做一个项,有一个收藏的功能,后来看到了一点资讯的收藏动画,感觉不错,所有自己就实现了一下。
这是效果:
附上完整的代码,其中Animation_Toast为动画:
& lt; div祝辞& lt;跨度祝辞& lt;/span> & lt;/div> & lt; pre name=按搿眂lass=癹ava”在公共类CollectToast { 私有静态CollectToast toastCollectSucceed=零; 私人土司=零; 私人TextView文本; 私人CollectToast () {}/* * *单例模式 * * @return */公共静态CollectToast createToast () { 如果(toastCollectSucceed==null) { toastCollectSucceed=new CollectToast (); } 返回toastCollectSucceed; }/* * *显示吐司 * * @param上下文 * @param根 * @param tvString * @param结果是否成功 */公共吐司showToast(上下文语境、ViewGroup根弦tvString, int,布尔结果){ 烤面包=零; int styleId=R.style.Animation_Toast; 如果(烤面包==null) { 视图布局=LayoutInflater.from(上下文).inflate (R.layout.toast_collect_layout、根); 文本=(TextView) layout.findViewById (R.id.title_tv); ImageView ImageView=(ImageView) layout.findViewById (R.id.iv); 如果(结果) imageView.setBackgroundDrawable (DrawableUtil。R.mipmap.doneicon_popup_textpage getImageDrawable(上下文)); 其他的 imageView.setBackgroundDrawable (DrawableUtil。R.mipmap.close_popup_textpage getImageDrawable(上下文)); text.setText (tvString); 烤面包=new吐司(上下文); toast.setGravity(重力。CENTER_VERTICAL, 0, 0); toast.setDuration(持续时间); toast.setView(布局); toast.show (); 其他}{ text.setText (tvString); toast.show (); }//通过反射给土司设置动画 尝试{ 对象mTN=零; mTN=getField(吐司,“mTN”); 如果(mTN !=null) { 对象mParams=getField (mTN,“mParams”); 如果(mParams !=null ,,mParams instanceof WindowManager.LayoutParams) { WindowManager。LayoutParams params=(WindowManager.LayoutParams) mParams; 参数个数。windowAnimations=styleId; } } }捕捉(异常e) { e.printStackTrace (); } 返回烤面包; }/* * *反射字段 * * @param对象要反射的对象 * @param fieldName要反射的字段名称 * @return * @throws NoSuchFieldException * @throws IllegalAccessException */私有静态对象getField(对象对象、字符串字段名)抛出NoSuchFieldException IllegalAccessException { 字段字段=object.getClass () .getDeclaredField(字段名); 如果(字段!=null) { field.setAccessible(真正的); 返回field.get(对象); } 返回null; } }& lt;/pre> & lt; br> & lt; div祝辞& lt;跨度祝辞& lt;/span> & lt;/div> & lt; pre> & lt;/pre> & lt; br> & lt; br>>之前
Android仿一点资讯收藏吐司动画效果