Вставить gif android studio

Анимированный GIF

Android не поддерживает анимированные gif-файлы из коробки. Рассмотрим несколько способов для решения проблемы.

Первое, что приходит в голову — использовать WebView. Можно просто разместить на экране своей активности компонент и загрузить в него нужную картинку.

Второй вариант — создать свой новый класс с собственным конструктором, унаследовавшись от WebView:

Осталось только программно установить созданный компонент. Для опытов использовался файл lick.gif в папке assets.

Два способа идентичны по сути. Но следует учесть, что WebView является очень «тяжёлым» компонентом, практически это целый браузер. Но с другой стороны, это самый просто и понятный способ.

Movie

Альтернативный способ показать анимированный файл — воспользоваться классом android.graphics.Movie. Создадим новый класс MoviewGifView:

Подключаем в главной активности.

Желательно также отключить поддержку аппаратного ускорения у активности в манифесте.

Пример простой и работоспособный.

Можно доработать класс MovieGifView, добавив поддержку загрузки из ресурсов и управление размерами.

Добавим вывод логов.

Дополнительное чтение

Существуют разные библиотеки для работы с анимированными гифками.

У меня не было причин использовать файлы данного формата в проектах, поэтому не могу судить о плюсах и минусах каждого из указанных способов.

Библиотека Glide для работы с изображениями поддерживает GIF. Наверное, это лучший вариант для ваших проектов.

Источник

Добавление gif-изображения в ImageView в android

Я добавил анимированное gif-изображение в imageView. Я не могу просмотреть его как gif-изображение. Никакой анимации нет. Он появляется как неподвижное изображение. Я хотел бы знать, как я могу показать его как GIF-изображения.

16 ответов

сначала скопируйте GIF-изображение в папку активов вашего приложения создать следующие классы и вставьте код AnimationActivity: —

GifDecoder: —

GifDecoderView: —

GifMovieView: —

GifWebView: —

Я Думаю, Это Может Помочь Вам. 🙂

в свою сборку.gradle (модуль:app), добавить android-gif-drawable как зависимость, добавив следующий код:

затем синхронизировать проект. Когда синхронизация закончится, перейдите в файл макета и добавьте следующий код:

и это все, вы можете управлять им с помощью простого ImageView.

использовать видео просмотр.

изначально ImageView не поддерживает анимированные изображения. У вас есть два варианта, чтобы показать анимированный файл gif

  1. использовать VideoView
  2. использовать ImageView и разделить файл gif на несколько частей, а затем применить анимацию к нему

отображение GIF в Android

создать CustomGifView.java which extends View Class

теперь вызовите этот класс в своем XML

Изменить AndroidManifest.xml для отключения hardwareAccelerated.

для функциональности анимации вы можете посетить

Я бы предложил вам использовать библиотеку Glide. Чтобы использовать Glide, вам нужно добавить это, чтобы добавить эти зависимости

в файл grandle (Module: app).

затем используйте эту строку кода для загрузки gif-изображения

на основе Ахмад Dwaik ‘чернокнижника комментарий, я попробовал следующий код, и он сработал.

  1. используйте webview в xml-файле и отрегулируйте его положение в том месте, где именно вы пытались показать вам .изображение GIF.
  2. в вашей деятельности инициализируйте этот небольшой кусок webview, как и другие представления.
  3. место .gif изображение в папке активов
  4. теперь загрузите изображение, как будто вы загружаете url-адрес в webview, как «diyaWebView1.loadUrl («file:// / android_asset / www / diya.gif»);»
  5. вы можете увидеть ваши .gif изображение при запуске приложения.

P. S :это работает, если вы.gif-изображение соответствует вашему webview или viceversa, если изображение больше, чем webview, полоса прокрутки включается, и пользователь может прокручивать изображение AKA webview. Поэтому нам нужно быть осторожными, когда мы используем это, чтобы дать правильный размер webview согласно изображению или отредактировать изображение, которое соответствует вашему webview.

Читайте также:  2 din андроид kia rio

используйте Webview для загрузки gif, как

As @Ahmad сказал в комментарии, вы можете просто использовать следующий код для отображения gif!

просто просто поп этот код в методе onCreate, и вы хорошо идти! Кроме того, поместите gif внутри assets папка (если у вас нет папки assets, создайте ее в разделе src/main )

мы можем легко добавить анимированное изображение gif на imageview с помощью библиотеки Ion.

вот что сработало для меня:

в свою сборку.gradle (project) напишите mavenCentral () в buildscript<> и allprojects <>. Это должно выглядеть так:

затем, в build.gradle (module) добавить в зависимости<> этот фрагмент:

compile ‘ pl.дроидсоноиды.gif: android-gif-drawable: 1.2.4’

Источник

Maven Gang

Web design trends, technologies, tutorials and more.

How to Play Animated GIFs in Android

Gif pictures are assuming enormous part in little picture movements. Unfortunately android doesn’t support the Gif animation in ImageView. Displaying an animated Gif in android is not a tedious process. This tutorial will give you an idea about how to display an animated Gif image in android.

Create a project in Android Studio.

Create a class GifImageView.java extends View

activity_main.xml

AndroidManifest.xml

Never forget to add the below line in your under AndroidManifest.xml otherwise the program will crash down.

You can set the GIf image either by using the following methods setGifImageResource() and setGifImageUri()

or by using background in the layout xml

Finally the result is

Reference

Other useful links

« Paper Fold Effect Using Pure CSS

Delete files older than X days »

27 thoughts on “ How to Play Animated GIFs in Android ”

Issa ndoye mbengue

January 5, 2017 at 8:18 am

Work well. Thank’s !

David

January 12, 2017 at 3:21 am

It works when the gif is in resource/drawable, but if I start with an empty GifImageView and load it from a Uri (pointing to a local file on the virtual device), nothing displays.
HOWEVER, if I do both, then it draws the new gif inside the space of the one in resource/drawable.

Maybe the empty GifImageView has 0 dimensions (although not according to canvas.getWidth/getHeight), and doesn’t resize appropriately when the datasource changes?

I feel like my misunderstanding is of the behavior of the View class. Any thoughts?

P.S. The Uri is obtained from a file on the virtual device as described in https://developer.android.com/guide/topics/providers/document-provider.html.

David

January 12, 2017 at 8:30 am

Figured it out. The function init() needs a requestLayout() call if you change the gif dynamically, especially to one with different dimensions.

Jijith Janardanan

January 28, 2017 at 9:11 am

Hi David,
Thank you for your valuable suggestion.
Now I added one more function setGifImageUri(), it can be used to set Gif image from an Uri.

Marco

January 29, 2017 at 2:56 pm

Hi !
It could be awesome to show gif from assets too !

public void setGifImageFromAssets(String fileName)
<
AssetManager am = getContext().getAssets();
try
<
mInputStream = am.open(fileName);
init();
>
catch (Exception ex)
<
Log.d(“Error”,ex.getMessage());
>
>

vishnu

January 31, 2017 at 6:56 am

hi,
awesome work it helped me a lot

January 31, 2017 at 7:00 am

Good Work, Worked for me. Thank You

March 7, 2017 at 5:12 am

Hi Jijith Janardanan
Can I use media controller or animation control on GifImageView ?
I’m newbie , sorry for bad English

Durga

April 12, 2017 at 7:23 pm

Hi, how to set gifview width and height to match parent

Richard

April 20, 2017 at 2:33 pm

please how do i stop the gif from playing

khaled M.

May 2, 2017 at 1:23 pm

It worked. Thanks a lot.

May 8, 2017 at 5:46 pm

Thank you! No unnecessary libraries 😉

Shiv kumar yadav

May 19, 2017 at 9:17 am

How to set image in full screen?

July 3, 2017 at 4:56 am

For this you’ll have to set background image in relativelayout in xml file

Melvin

May 29, 2017 at 11:54 am

Thank you Very much …

Harsh

May 31, 2017 at 10:13 am

this is not working on Samsung devices

Thirupathi Mukkera

July 1, 2017 at 6:19 am

Hi Jijith,
I want to give onTouch action to the GifImageview, how can I give.
I gave onTouchlistener to the gifimageview. but i didn’t work. We have to give scaleType = “matrix”.
How to customize to give onTouch action

July 3, 2017 at 3:58 pm

I used the following code and the gif works fine but sometimes when i restart the activity with the gif the background of layout turns black although i have set it to white. This happens randomly and not after particular operation sequence which makes it hard to debug. I have found out that this is due to memory leak problem with gifImageView bit I haven’t had any success resolving it. Please help.

Raju Pulidindi

July 27, 2017 at 5:12 pm

Hello Janardanan, Thank you very much for this excellent solution to use ‘gif files’. I am beginner to the android development. I am going use this code after I fully understand… I would like to know, if I can send you any android studio related questions in future. Please let me know.

Jijith Janardanan

July 27, 2017 at 6:42 pm

Sure you can ask me the questions related to Android.

RAJU PULIDINDI

July 27, 2017 at 10:27 pm

Hello Janardanan, I have used the code exactly the way you have provided. I am getting this message – Unfortunately Raju-GifView has stopped.
Sending you the first few lines of ‘logcat’. Any help you give is greatly appreciated:

– 07-27 22:23:05.816 2066-2066/? D/dalvikvm: Late-enabling CheckJNI
07-27 22:23:05.936 2066-2066/com.rajupulidindi.raju_gifview I/dalvikvm: Could not find method android.view.Window$Callback.onProvideKeyboardShortcuts, referenced from method android.support.v7.view.WindowCallbackWrapper.onProvideKeyboardShortcuts
07-27 22:23:05.936 2066-2066/com.rajupulidindi.raju_gifview W/dalvikvm: VFY: unable to resolve interface method 17006: Landroid/view/Window$Callback;.onProvideKeyboardShortcuts (Ljava/util/List;Landroid/view/Menu;I)V
07-27 22:23:05.936 2066-2066/com.rajupulidindi.raju_gifview D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002
07-27 22:23:05.940 2066-2066/com.rajupulidindi.raju_gifview W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
07-27 22:23:05.940 2066-2066/com.rajupulidindi.raju_gifview I/dalvikvm: Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested
07-27 22:23:05.940 2066-2066/com.rajupulidindi.raju_gifview W/dalvikvm: VFY: unable to resolve interface method 17008: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
07-27 22:23:05.940 2066-2066/com.rajupulidindi.raju_gifview D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002
07-27 22:23:05.940 2066-2066/com.rajupulidindi.raju_gifview I/dalvikvm: Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode
07-27 22:23:05.940 2066-2066/com.rajupulidindi.raju_gifview W/dalvikvm: VFY: unable to resolve interface method 17012: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
07-27 22:23:05.952 2066-2066/com.rajupulidindi.raju_gifview D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002

Shashi

August 1, 2017 at 3:04 am

Very nice tutorial! Thanks a lot.

Can you please tell me how can I stop the gif to play once it has played one round. I don’t want it to be played recursively.

Thanks & Regards,
Shashi

Whatever

August 28, 2017 at 12:03 am

This code is useless… Crashes my app and even after I removed it my app doesn’t work at all… I regret using your codes, seriously.

Jijith Janardanan

August 28, 2017 at 12:52 pm

A bad worker always blame on his tools.“I removed it my app doesn’t work at all” this implies that you are not a good developer. Please learn android development.

Vu Thai Duy

September 16, 2017 at 3:59 am

I think we should not turn off hardware acceleration for whole activity or application,. Just turn it off for only custom gif image view by using “setLayerType(View.LAYER_TYPE_SOFTWARE, null);”
To specify: place above code on init method of GifImageView class

Fábio Monteiro

February 5, 2018 at 4:14 pm

How do I set the width and height? I tried to set the RelativeLayout width with match_parent and a height about 40dp, and inside this layout I put a width with match parent and height with match parent. The size of my gif is 140w and 40h , but I cant resize the gif or set a new with or height. Could you help me?

Источник

Как создать gif анимацию на своем Андроид смартфоне

Если вы когда-либо думали о создании gif на своем Андроид смартфоне, то у вас есть два варианта.

Первый — приложение для камеры, которое превращает короткий фрагмент видео в gif.

Второй — программа для создания gif, которая помогает вам создать gif из других картинок.

Мы рассмотрим оба варианта.

Camera MX

Camera MX это приложение для камеры. Вы можете записывать короткие отрезки видео или сделать много фотографий. Приложение может превратить все это в GIF.

Footej Camera

Footej Camera было одним из первых приложений для камер, которое также делает GIF. Еще, это действительно хорошее приложение для камеры.

Оно оснащено ручным управлением камерой, интегрированным приложением галереи, режимом пакетной съемки, гистограммой фотографий и т. д.

У приложения даже есть поддержка видео 4K. Приложение также может создавать высококачественные GIF-файлы, используя фотографии или видео, снятые вами.

GIF Maker

GIF Maker одно из наиболее популярных приложений для создания GIF.

Вы можете вырезать и обрезать видео в своей галерее, чтобы создать GIF.

Также можно создавать gif используя до 200 фотографий. Вы также можете добавлять стикеры, текст или редактировать существующие GIF.

Gif Me Camera

Gif Me Camera — это приложение для камеры, специально предназначенное для создания GIF.

Он захватывает до 14 секунд видео. Затем вы редактируете его с помощью цветных фильтров, наклеек, текста и других материалов.

Оно также поддерживает остановку движения, временную задержку и другие типы снимков.

Есть поддержка конверсии видео в GIF для существующих видео.

В бесплатной версии есть рекламные объявления. Оно также добавляет водяной знак в ваш GIF. Про версия удаляет обе эти вещи.

GIF Studio

GIF Studio это одно из старых приложений для создания GIF.

У него есть куча функций, но выглядит оно устаревшим.

Дополни тельные возможности включают в себя наклейки, эффекты, текст и многое другое.

Вы также можете обрезать GIF, чтобы уменьшить размер файла. Также приложение может работать с видео или изображениями.

Приложение может даже удалить отдельные изображения из GIF, если это необходимо.

Есть бесплатная версия, которую вы можете скачать и попробовать. Про версия стоит 0,99 доллара.

Giphy Cam

Giphy Cam одно из новых приложений для создания gif.

Камера записывает короткий сегмент видео. Вы можете изменить это видео с множеством фильтров, спецэффектов, наклеек, текста и т. д.

Также у приложения есть режим пакетной съемки с пятью кадрами наряду с видеорежимом.

Это, вероятно, лучший гибрид из приложений GIF/камеры. Оно абсолютно бесплатно.

GroupMe

Некоторые месенджеры имеют встроенный GIF редактор. GroupMe является одним из них, как и Google Allo.

GroupMe не может создавать GIF из ничего. Однако вы можете взять GIF, добавить текст, и приложение переделает его для вас.

В Google Allo есть функция камеры, которая снимает несколько секунд видео. Это видео отправляется вашим друзьям в формате GIF.

GroupMe особенно хорош для того, чтобы добавить быстрый, чистый текст к существующим изображениям и GIF.

Motion Stills

Motion Stills — приложение для создания GIF от Google.

Он имеет два режима, которые вы можете использовать. Первый снимает короткий фрагмент видео. Вы можете превратить его в GIF. Второй режим позволяет снимать медленное видео.

Вы можете делиться своими произведениями в виде циклического GIF или в виде видео. Это зависит от того, что вам нужно.

У приложения есть несколько проблем. Однако это новое приложение. Эти проблемы, скорее всего, будут исправлены с течением времени. Приложение бесплатное без рекламы или покупок в приложении. Тяжело жаловаться.

Pixel Animator

Pixel Animator — это приложение для создания пиксельных картинок. Тем не менее, вы можете создавать GIF-файлы из изображений.

Приложение имеет достойный интерфейс. Вы можете войти и начать рисовать почти сразу. Бесплатная версия приложения позволяет вам создавать GIF с 15 кадрами.

Платная версия устраняет это ограничение. Возможно, его наиболее полезной функцией является возможность переноса предыдущего изображения в GIF на следующее изображение.

Таким образом, вам просто нужно внести небольшие изменения вместо того, чтобы начинать с нуля. Это очень полезно для тех, кто хочет создавать свои собственные уникальные GIF-файлы.

PowerDirector

PowerDirector является одним из многих приложений для редактирования видео с поддержкой GIF.

Оно просто лучше, чем большинство других. Это приложение видеоредактор.

Он может создавать неподвижные изображения GIF и анимированные GIF-файлы.

Это определенно лучше всего подходит для превращения видео в более короткий GIF.

Если мы пропустили какие-либо из лучших приложений для создания gif для Android, расскажите нам о них в комментариях!

Источник

Оцените статью