Uygulamamda animasyonlu GIF görüntüleri görüntülemek istiyorum. Zor yoldan öğrendiğim gibi Android, animasyonlu GIF'i yerel olarak desteklemiyor.
Ancak AnimationDrawable kullanarak animasyonları görüntüleyebilir:
Develop > Guides > Images & Graphics > Drawables Overview
Örnek, uygulama kaynaklarında kare olarak kaydedilen animasyonu kullanıyor, ancak ihtiyacım olan şey animasyonlu gif'i doğrudan görüntülemek.
Planım animasyonlu GIF'i karelere bölmek ve her kareyi AnimationDrawable'a çizilebilir olarak eklemek.
Animasyonlu GIF'ten karelerin nasıl çıkarılacağını ve her birinin Drawable'e nasıl dönüştürüleceğini bilen var mı?
Sorunu, gif animasyonlarını telefona kaydetmeden önce karelere bölerek çözdüm, böylece Android'de bununla uğraşmak zorunda kalmayacaktım.
Sonra her kareyi telefona indiriyorum, ondan Drawable oluşturuyorum ve sonra AnimationDrawable oluşturuyorum - sorumdaki örneğe çok benzer
Her şeyden önce Android tarayıcısı Animasyonlu GIF'leri desteklemelidir. Eğer desteklemiyorsa bu bir hatadır! Sorun izleyicilerine bir göz atın.
Bu animasyonlu GIF'leri bir tarayıcı dışında görüntülüyorsanız durum farklı olabilir. İstediğinizi yapmak için Animasyonlu GIF'lerin kodunu çözmeyi destekleyen harici bir kütüphane gerekir.
İlk olarak Java2D veya JAI (Java Advanced Imaging) API'sine bakabilirsiniz, ancak Android Dalvik'in uygulamanızda bu kütüphaneleri desteklemesi beni çok şaşırtacaktır.
Leonti'nin söylediğine benzer, ancak biraz daha derinlemesine:
Aynı sorunu çözmek için yaptığım şey GIMP'i açmak, biri hariç tüm katmanları gizlemek, kendi görüntüsü olarak dışa aktarmak ve ardından her biri için ayrı kaynak dosyalarım olana kadar bu katmanı gizlemek ve bir sonrakini gizlemek vb. oldu. Daha sonra bunları AnimationDrawable XML dosyasında çerçeve olarak kullanabiliyordum.