Android仿一点资讯收藏Toast动画效果

发布时间 - 2026-01-11 02:00:40    点击率:

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

这是效果:

附上完整的代码,其中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 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  javascript如何操作浏览器历史记录_怎样实现无刷新导航  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  如何生成腾讯云建站专用兑换码?  网站优化排名时,需要考虑哪些问题呢?  如何自定义建站之星网站的导航菜单样式?  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  如何快速搭建安全的FTP站点?  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  微信小程序 配置文件详细介绍  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  如何在阿里云服务器自主搭建网站?  如何在万网自助建站中设置域名及备案?  如何用y主机助手快速搭建网站?  韩国服务器如何优化跨境访问实现高效连接?  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  奇安信“盘古石”团队突破 iOS 26.1 提权  Bootstrap整体框架之JavaScript插件架构  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  网站页面设计需要考虑到这些问题  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  如何在服务器上配置二级域名建站?  如何用已有域名快速搭建网站?  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  如何在IIS服务器上快速部署高效网站?  详解jQuery停止动画——stop()方法的使用  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  北京企业网站设计制作公司,北京铁路集团官方网站?  如何在橙子建站上传落地页?操作指南详解  长沙企业网站制作哪家好,长沙水业集团官方网站?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  深圳网站制作的公司有哪些,dido官方网站?  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  长沙做网站要多少钱,长沙国安网络怎么样?  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  香港服务器租用每月最低只需15元?  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  清除minerd进程的简单方法  Python面向对象测试方法_mock解析【教程】