中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android仿一點資訊收藏Toast動畫效果

發布時間:2020-09-03 09:50:21 來源:腳本之家 閱讀:246 作者:wangw-csdn 欄目:移動開發

最近在做一個項,有一個收藏的功能。后來看到了一點資訊的收藏動畫,感覺不錯,所有自己就實現了一下。

這是效果:

Android仿一點資訊收藏Toast動畫效果

附上完整的代碼,其中Animation_Toast為動畫:

<div ><span ></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 ><span ></span></div> 
<pre></pre> 
<br> 
<br> 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌兰察布市| 合水县| 揭东县| 伊通| 二连浩特市| 兴国县| 绥滨县| 扎赉特旗| 肃宁县| 布尔津县| 宕昌县| 胶南市| 承德县| 开平市| 佛学| 弋阳县| 凤翔县| 满洲里市| 湘潭市| 夏河县| 喀喇沁旗| 池州市| 渝北区| 马关县| 金昌市| 东乌珠穆沁旗| 易门县| 乌鲁木齐县| 浙江省| 阳朔县| 龙南县| 永吉县| 和平区| 华池县| 资中县| 连云港市| 竹北市| 湘潭县| 白城市| 鄂伦春自治旗| 安徽省|