首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 開發:在控件背景顯示 GIF 動態圖片

     編輯:程式設計綜合問答

問題背景

Android 原生 View.setBackgroundResource() 僅支援靜態圖片,無法直接播放 GIF 動畫。若需在按鈕、卡片或任意 View 背景呈現動態效果,需自行實作繪製邏輯。

解決方案:自定義 GifView

繼承 View 並利用 Movie 類別解碼 GIF 幀,覆寫 onDraw() 定時重繪。

關鍵步驟

  1. 建立 GifView extends View,建構子載入 GIF 資源(Movie.decodeStream())。
  2. 使用 Handler 或 ValueAnimator 觸發 invalidate() 循環更新幀。
  3. 在 onDraw(Canvas) 中呼叫 movie.draw(canvas, x, y) 繪製當前幀。
  4. 處理 onDetachedFromWindow() 停止動畫,避免記憶體洩漏。

參考資源

完整實作可參考開源專案:Android GIF 播放 View 範例

替代方案

  • 使用 Glide、Coil 等圖片載入庫支援的 GifDrawable 搭配 ImageView。
  • 若為 Lottie 動畫,改用 LottieAnimationView 效能更佳。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved