最近在做一个项,有一个收藏的功能。后来看到了一点资讯的收藏动画,感觉不错,所有自己就实现了一下。

这是效果:
附上完整的代码,其中Animation_Toast为动画:
<div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;"></span></div><pre name="code" class="java">public class CollectToast {
private static CollectToast toastCollectSucceed = null;
private Toast toast = null;
private TextView text;
private CollectToast() {}
/**
* 单例模式
*
* @return
*/
public static CollectToast createToast() {
if (toastCollectSucceed == null) {
toastCollectSucceed = new CollectToast();
}
return toastCollectSucceed;
}
/**
* 显示Toast
*
* @param context
* @param root
* @param tvString
* @param result 是否成功
*/
public Toast showToast(Context context, ViewGroup root, String tvString, int duration, boolean result) {
toast = null;
int styleId = R.style.Animation_Toast;
if (toast == null) {
View layout = LayoutInflater.from(context).inflate(R.layout.toast_collect_layout, root);
text = (TextView) layout.findViewById(R.id.title_tv);
ImageView imageView = (ImageView) layout.findViewById(R.id.iv);
if (result)
imageView.setBackgroundDrawable(DrawableUtil.getImageDrawable(context, R.mipmap.doneicon_popup_textpage));
else
imageView.setBackgroundDrawable(DrawableUtil.getImageDrawable(context, R.mipmap.close_popup_textpage));
text.setText(tvString);
toast = new Toast(context);
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(duration);
toast.setView(layout);
toast.show();
} else {
text.setText(tvString);
toast.show();
}
//通过反射给Toast设置动画
try {
Object mTN = null;
mTN = getField(toast, "mTN");
if (mTN != null) {
Object mParams = getField(mTN, "mParams");
if (mParams != null
&& mParams instanceof WindowManager.LayoutParams) {
WindowManager.LayoutParams params = (WindowManager.LayoutParams) mParams;
params.windowAnimations = styleId;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return toast;
}
/**
* 反射字段
*
* @param object 要反射的对象
* @param fieldName 要反射的字段名称
* @return
* @throws NoSuchFieldException
* @throws IllegalAccessException
*/
private static Object getField(Object object, String fieldName) throws NoSuchFieldException, IllegalAccessException {
Field field = object.getClass().getDeclaredField(fieldName);
if (field != null) {
field.setAccessible(true);
return field.get(object);
}
return null;
}
}</pre><br>
<div style="text-align:left"><span style="font-family:Arial,Helvetica,sans-serif"></span></div>
<pre></pre>
<br>
<br>
# android
# 一点资讯
# 收藏toast动画
# Android WebView自定义长按选择实现收藏/分享选中文本功能
# Android仿拉手网团购App我的收藏界面实例代码
# Android自定义View实现仿驾考宝典显示分数效果(收藏)
# Android开发中使用sqlite实现新闻收藏和取消收藏的功能
# Android模仿微信收藏文件的标签处理功能
# Android编程之文件读写操作与技巧总结【经典收藏】
# java
# Android:在eclipse中的快捷键(经典收藏)
# 这是
# 做一个
# 有一个
# 实现了
# 看到了
# TextView
# toast
# return
# param
# createToast
相关文章:
如何在西部数码注册域名并快速搭建网站?
javascript中的try catch异常捕获机制用法分析
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
javascript中对象的定义、使用以及对象和原型链操作小结
山东云建站价格为何差异显著?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
电商平台网站制作流程,电商网站如何制作?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
建站之星如何通过成品分离优化网站效率?
建站之星安装失败:服务器环境不兼容?
制作企业网站建设方案,怎样建设一个公司网站?
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
北京专业网站制作设计师招聘,北京白云观官方网站?
b2c电商网站制作流程,b2c水平综合的电商平台?
如何快速查询网站的真实建站时间?
建站之星安装需要哪些步骤及注意事项?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
如何用狗爹虚拟主机快速搭建网站?
电商网站制作价格怎么算,网上拍卖流程以及规则?
如何选择美橙互联多站合一建站方案?
如何用虚拟主机快速搭建网站?详细步骤解析
成都网站制作公司哪家好,四川省职工服务网是做什么用?
如何生成腾讯云建站专用兑换码?
如何选择服务器才能高效搭建专属网站?
如何在腾讯云服务器上快速搭建个人网站?
如何设置并定期更换建站之星安全管理员密码?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
家庭建站与云服务器建站,如何选择更优?
如何在宝塔面板创建新站点?
建站之星微信建站一键生成小程序+多端营销系统
如何在服务器上配置二级域名建站?
Python如何创建带属性的XML节点
动图在线制作网站有哪些,滑动动图图集怎么做?
如何通过西部建站助手安装IIS服务器?
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
香港服务器部署网站为何提示未备案?
,网站推广常用方法?
如何通过西部数码建站助手快速创建专业网站?
如何在景安云服务器上绑定域名并配置虚拟主机?
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
网站制作难吗安全吗,做一个网站需要多久时间?
教学网站制作软件,学习*后期制作的网站有哪些?
如何在阿里云香港服务器快速搭建网站?
Android自定义listview布局实现上拉加载下拉刷新功能
如何通过服务器快速搭建网站?完整步骤解析
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
西安大型网站制作公司,西安招聘网站最好的是哪个?
广州美橙建站如何快速搭建多端合一网站?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
*请认真填写需求信息,我们会在24小时内与您取得联系。