當前位置:首頁 » 安卓系統 » androidgif控制項

androidgif控制項

發布時間: 2025-03-15 22:10:51

Ⅰ 為什麼在android中調用新浪微博介面發表的gif圖片不動

查看微博android版sdk中發布圖片的代碼你會發現他是把圖片轉成bitmap了,而gif轉bitmap只會是第一幀圖片,這就是原因。解決方法是,修改這部分代碼,對文件名做一個判斷,如果是.gif的,就不轉成bitmap,直接用文件流發布

Ⅱ Android 實現Gif播放的七種方法

背景:在項目里某個需求實現的時候,有個圖標有一個動畫效果,為了達到UI要求的效果,試過多種方案,在這篇文章中講一下這些方案的用法,以及結合項目的現狀,做的一個方案選擇。

Link: https://github.com/bumptech/glide
Glide是Android上比較常見的圖片載入框架了,在Android上是數一數二的圖片載入框架代表了,當然,早期的類似 ImageLoader Picasso 這些,算是比較具有歷史性的圖片載入框架了。

Glide載入Gif的話,用到的是 GifDrawable 這個對象,一般我們用

去創建,當然,如果你載入的是 Bitmap 或 GifDrawable,你可以判斷這個可繪制對象是否實現了 Animatable:

Link: https://github.com/koral--/android-gif-drawable
android-gif-drawable也是Android上比較火熱的圖片載入框架

這個庫播放Gif用到的也是 pl.droidsonroids.gif.GifDrawableGifDrawable 對象,不像Glide,它的創建的方式比較簡單

可以根據需求,選擇不同的構造器創建對象

GifDrawable 實現了 Animatable 跟 MediaPlayerControl 介面,所以你可以使用他們各自的方法甚至更多

使用 MediaPlayerControl
MediaPlayer的標准控制項(如VideoView)可用於控制GIF動畫並顯示其當前進度。
只需在 MediaController 上將 GifDrawable 設置為 MediaPlayer ,如下所示:

更多詳細用法見 Github Usage

Link:android.jar-android.graphics.drawable
AnimatedImageDrawable是Android官方推出播放動圖的類,優點是官方穩定高效,缺點是僅支持Android P版本(api=28)以上

使用方法也比較簡單

Link:android.jar-android.graphics
android.graphics.Movie 也是Android自帶的類,可以用來載入播放Gif動畫,實現起來相對來說可能比較繁瑣,官方已經將這個類標記為 @Deprecated {@link android.graphics.drawable.AnimatedImageDrawable} ,但還是有必要講下。
主要的構造方法有:

按來源分別可以從Gif文件的輸入流,文件路徑,位元組數組中得到Movie的實列。然後我們可以通過操作Movie對象來操作Gif文件。
下面介紹下幾個方法:

關鍵是Movie官方沒有給出回調監聽,故我們需要手動做監聽。
有興趣的可以看這一篇文章,寫的很不錯。 Android自定義View播放Gif動畫

當然,除了這些之外,還有跨平台的解決方案,比起傳統的gif文件, Lottie 則是使用json文件來代表動畫源文件。

Lottie 對APK的影響有多大?

Add the dependency to your project build.gradle file:

核心類:

載入動畫:
Lottie 可以載入動畫來自:

最簡單的形式就是使用 LottieAnimationView :
推薦使用 lottie_rawRes ,相對於使用指定的字元串文件名,你可以使用通過 R 文件以靜態的引用形式指定你的動畫文件.

更多詳細介紹及用法見 官方文檔

Link: https://android.googlesource.com/platform/frameworks/ex/+/android-5.0.2_r1/framesequence
FrameSequenceDrawable 更多的是對webp格式的一個支持,所以當要使用時,需要將你的gif轉為webp

來看下主要的構造方法:

使用方法如下:

[Facebook/Fresco] ( https://github.com/facebook/fresco ) 也支持gif的載入,大同小異,這里就不再過多介紹了。

Glide在部分設備上遇到了Gif變慢的問題,詳見 issues_2471
考慮到項目已經集成了Glide了,就不打算再繼續引入第三方的庫了。又因為原素材的問題,無法導出Lottie格式的json文件。
故這一塊當時做的就是 >=androidP 用AnimatedImageDrawable,<androidP 就用Glide,僅供參考。

Ⅲ 怎樣讓android應用啟動gif動起來

1-把GifView.jar加入你的項目。

2-在xml中配置GifView的基本屬性,GifView繼承自View類,和Button、ImageView一樣是一個UI控制項。如:

view plain to clipboardprint <com.ant.liao.GifView android:id="@+id/gif2"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:paddingTop="4px" android:paddingLeft="14px" android:enabled="false" /$amp;>amp;$nbsp;
<com.ant.liao.GifView android:id="@+id/gif2"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:paddingTop="4px" android:paddingLeft="14px" android:enabled="false" />

3-在代碼中配置常用屬性:

view plain to clipboardprint // 從xml中得到GifView的句柄
gf1 = (GifView) findViewById(R.id.gif1);
// 設置Gif圖片源
gf1.setGifImage(R.drawable.gif1);
// 添加監聽器
gf1.setOnClickListener(this);
// 設置顯示的大小,拉伸或者壓縮
gf1.setShowDimension(300, 300);
// 設置載入方式:先載入後顯示、邊載入邊顯示、只顯示第一幀再顯示
gf1.setGifImageType(GifImageType.COVER);
// 從xml中得到GifView的句柄
gf1 = (GifView) findViewById(R.id.gif1);
// 設置Gif圖片源
gf1.setGifImage(R.drawable.gif1);
// 添加監聽器
gf1.setOnClickListener(this);
// 設置顯示的大小,拉伸或者壓縮
gf1.setShowDimension(300, 300);
// 設置載入方式:先載入後顯示、邊載入邊顯示、只顯示第一幀再顯示
gf1.setGifImageType(GifImageType.COVER);

GifView的Jar包共有四個類:

GifAction.java

觀察者類,監視GIF是否載入成功

GifFrame.java

裡面三個成員:當前圖片、延時、下張Frame的鏈接。

GifDecoder.java

解碼線程類

GifView.java

主類,包括常用方法,如GifView構造方法、設置圖片源、延遲、繪制等。

Ⅳ 有哪些常用或優秀的 Android 第三方類庫

Android開發第三方類庫分類:

  1. gifview 、 gifview2

    這兩個項目是同一人開發的,用於顯示gif動畫,純java解碼 ,gif圖片過大會產生OOM。

  2. android-gif-drawable

    一個也是用於解碼顯示gif的類庫,採用jni解碼,大GIF也不會產生oom,完美運行。

  3. PhotoView

    PhotoView 是一款擴展自Android ImageView ,支持通過單點/多點觸摸來進行圖片縮放的智能控制項。使用比較簡單,提供了一個名為PhotoView的控制項,可以直接像普通ImageView那樣使用。

    特性:支持單點/多點觸摸,即時縮放圖片;支持平滑滾動;在滑動父控制項下能夠運行良好;(例如:ViewPager)

不同的環境使用不同的類庫,不同的系統也是同樣的道理。

熱點內容
android游戲安裝 發布:2025-03-16 03:50:08 瀏覽:329
翻杯子演算法 發布:2025-03-16 03:34:31 瀏覽:602
ftp後台密碼怎麼設置 發布:2025-03-16 03:33:08 瀏覽:360
阿里雲伺服器的sdk是免費的嗎 發布:2025-03-16 03:33:04 瀏覽:7
卸載linux軟體 發布:2025-03-16 03:19:07 瀏覽:808
太平天國迅雷下載ftp 發布:2025-03-16 03:13:19 瀏覽:64
伺服器硬碟溫度怎麼調節 發布:2025-03-16 03:11:47 瀏覽:74
netcore編譯前執行代碼 發布:2025-03-16 03:05:17 瀏覽:475
飢荒聯機版伺服器搭建程序 發布:2025-03-16 02:55:18 瀏覽:684
win7如何訪問共享 發布:2025-03-16 02:55:14 瀏覽:37