Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

Paggawa ng isang Live na Wallpaper sa Android Gamit ang Animated na GIF

by
Difficulty:IntermediateLength:LongLanguages:

Tagalog (Wikang Tagalog) translation by Anna Nelson (you can also view the original English article)

Nakakakita ka na ba ng magandang animated na GIF na maayos ang pagikot at nagtataka ka kung pwede mong gamitin bilang isang live na wallpaper sa iyong Android na kagamitan?  Buweno, pwede, at dito sa tutoryal na ito ipapakita ko sa iyo kung paano. 

Panimula

Paggawa ng kawili-wili at magandang live na wallpaper mula sa wala gamit lamang ang matematika at kowd para makabuo ng mga grapika ay matrabaho at nakakaubos ng oras. Nangangailangan din ng pagkamalikhain.   Sa isang banda, ang paggawa ng animated na GIF o paggahanap ng isa online ay mas madali.   Sa tutoryal na ito, matututunan mo kung paano gawin ang isang animated na GIF na live na wallpaper. 

Mga kailangan

Siguraduhin na mayroon ka noong pinakahuling bersyon ng Android Studio at ito ay nakaset up.  Makukuha mo sa Android Developer website.

Kahit na pwede ang kahit anong animated na GIF, ang suhestyon ko ay mag-download ka ng magandang sinemagrapiko.  Ang sinemagrapiko ay isang animated na GIF—na madalas ginagawa mula sa isang bidyo—na maayos ang pagikot.  Marami kang makikita na magaganda sa Flickr.

Para sa tutoryal na ito, gumagamit ako ng isang sinemagrapiko na ginawa ng isang gumagamit ng Flickr djandyw.com na makukuha sa ilalim ng isang Creative Commons na lisensiya.

1. Gumawa ng Bagong Proyekto 

Simulan ang Android Studio, gumawa ng bagong proyekto, at pangalanan ang proyekto na GIFWallpaper.  Pumili ng isang kakaibang pangalan para sa pakete kapag gusto mong ilathala ang app na ito sa Google Play.

Italaga ang pinakamababang SDK sa API 8: Android 2.2 (Froyo).

Ang aming app ay hindi magkakaroon ng Aktibidad, kaya piliin ang Magdagdag ng Walang Aktibidad at i-klik ang Tapos Na

2. Ilarawan ang Wallpaper

Ang isang live na wallpaper ay nangangailangan ng payl na naglalarawan dito.   Gumawa ng bagong XML na payl na nakapangalang res/xml/wallpaper.xml at palitan ang mga nilalaman nito ng mga sumusunod na XML:

Ang etiketa at thumbnail ay partikular na importante sapagkat sila ay gagamitin kapag ang wallpaper ay lumabas sa listahan na mga wallpaper na pwedeng gamitin sa iyong kagamitan. 

3. Baguhin ang Manipesto

Para gumana bilang isang live na wallpaper, ang aming app ay nangangailangan lamang ng isang permiso, android.permission.BIND_WALLPAPER.

Ang isang live na wallpaper ay gumagana bilang isang Serbisyo na pwedeng tumanggap ng android.service.wallpaper.WallpaperService layuning aksyon.  Pangalanan ang Serbisyong GIFWallpaperService at idagdag sa manipesto ng proyekto, AndroidManifest.xml.

Susunod, para masiguro na ang app ay pwedeng mainstala lamang sa mga kagamitan na maaaring magpagana ng mga live na wallpaper, idagdag ang mga sumusunod na snippet sa manipesto:

4. Magdagdag ng Animated na GIF

Kopyahin ang animated na GIF na na-download mo mula sa Flickr sa polder ng mga katangian ng proyekto.  Pinangalanan ko ang GIF na girl.gif.

5. Gumawa ng Serbisyo

Gumawa ng bagong Java na klase at pangalanan itong GIFWallpaperService.java.  Ang klase na ito ay dapat palawigin niya ang WallpaperService na klase.

Dahil ang WallpaperService ay isang abstraktong klase, dapat mong i-override ang kanyang onCreateEngine na pamamaraan at magbalik ng ehemplo ng sarili mong Engine, na kayang maghain ng mga balangkas ng GIF.

Para gamitin ang animated na GIF, kailangang gawin mo muna itong Movie na bagay.  Pwede mong gamitin ang klase ng Pelikula na decodeStream na pamamaraan para gawin ito.   Kapag tapos ng nagawa ang Pelikula na bagay, ipasa ito bilang isang parametro sa gumagawa ng custom Engine.

Ganito dapat ang hitsura ng onCreateEngine na pamamaraan:

6. Gumawa ng Engine

Simulan na nating magtrabaho sa Engine ngayon.  Gumawa ng klaseng named GIFWallpaperEngine sa loob ng GIFWallpaperService na klase at gawin sa pamamaraang papalawigin niya ang WallpaperService.Engine.

Idagdag ang mga sumusunod na mga paksa dito sa bagong klase:

  • frameDuration: Ang intedyer na ito ay kumakatawan sa abala sa pagitan ng mga re-draw na operasyon.  Ang halagang 20 ay bibigyan ka ng 50 balangkas kada segundo. 
  • nakikita: Ang boolean na ito ay pinapayagan ang engine na malaman kung ang live na wallpaper ay kasulukuyang nakikita sa screen.   Mahalaga ito, sapagkat hindi dapat natin iguhit ang wallpaper kapag hindi ito nakikita. 
  • pelikula: Ito ay isang animated na GIF sa pormang Pelikula na bagay.
  • tagahawak: Ito ay tumutukoy sa SurfaceHolder na bagay na makikita sa engine.  Dapat masimulan sa pamamagitan ng pag-override ng onCreate na pamamaraan.
  • tagapamahala: Ito ay isang Tagapamahala na bagay na gagamitin para simulan ang Runnable na responsable para sa aktuwal na pagguhit ng wallpaper. 

Ang iyong klase ay dapat ganito na ang hitsura:

Susunod, gumawa ng pamamaraan na ang pangalan ay guhit na guguhit ng mga nilalaman ng animated na GIF.  Isa isahin natin ang pamamaraan na ito:

  • Suriin muna natin kung ang nakikitang bagay na pwedeng baguhin ay nakatalaga sa totoo.   Tutuloy lang tayo kapag nakatalaga na.
  • Gamitin ang lockCanvas na pamamaraan ng SurfaceHolder para magawang gumuhit ang Canvas.
  • Gumuhit ng balangkas ng animated na GIF sa Canvas pagkatapos sukatin at iposisyon ito.
  • Kapag tapos na ang lahat ng pagguhit, ipasa ang Canvas pabalik sa SurfaceHolder.
  • I-update ang kasalukuyang balangkas ng  animated na GIF gamit ang setTime na pamamaraan ng bagay ng Movie.
  • Tawagin ang pamamaraan ulit gamit ang tagapamahala pagkatapos hintayin ang frameDuration na mga millisecond.

Ang guhit na pamamaraan ay hindi kailanman tinatawag nang direkta.   Lagi itong tinatawag gamit ang Tagapamahala at isang Runnable na bagay.   Kung kaya, gawa tayo ng Runnable na bagay na paksa ng klase at tawagin itong drawGIF.

Idagdag ang sumusunod na kowd sa GIFWallpaperService na klase:

Ang onVisibilityChanged na pamamaraan ay awtomatikong tinatawag tuwing ang bisibilidad ng wallpaper ay nagpapalit.  Kailangan nating i-override ito at, batay sa halaga ng nakikitang argumento, maaaring simulan o ihinto ang drawGIF.  Ang removeCallbacks na pamamaraan ng Tagapamahala ay ginagamit para ihinto ang nakatenggang drawGIF na gumagana.

Sa wakas, i-override ang onDestroy na pamamaraan ng Engine para ihinto ang nakatenggang drawGIF na gumagana kapag ang wallpaper ay naka-deaktiba na. 

7. Mangalap at Mag-Instala 

Ang iyong live na wallpaper ay handa na.   Mangalap at iinstala ito sa iyong Android na kagamitan.   Kapag nainstala na, dapat makikita mo ang wallpaper sa listahan na mga wallpaper na pwedeng gamitin. 

Halos lahat ng mga naglulunsad ay nagbibigay ng opsyon na palitan ang wallpaper pagkatapos na matagal na pag-tap.   Bilang alternatibo, pwede kang pumunta sa display na settings para palitan ang wallpaper. 

Kapag ang GIF ay sobrang liit o hindi nakaposisyon nang maayos, bumalik sa guhit na pamamaraan at ayusin ang iskala at posisyon. 

Konklusyon

Alam mo na ngayon kung paano gumamit ng animated na GIF para gumawa ng live na wallpaper.  Huwag mag-atubiling mag-eksperimento sa marami pang mga GIF.  Kapag plano mong ilathala ang iyong live na wallpaper sa Google Play, siguraduhin mong mayroon kang permiso ng gumawa para gamitin ang animated na GIF nang pangkalakal. Bisitahin ang Android Developer website para matututunan pa lalo ang WallpaperService na klase.


Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.