动态桌面运行原理 怎样将短视频制作成电脑动态桌面壁纸,求解

\u6700\u8fd1\u5f88\u706b\u7684 Wallpaper Engine \u7684\u5b9e\u73b0\u539f\u7406\u662f\u600e\u6837\u7684

wallpaper engine\u4f7f\u7528\u56fe\u6587\u6559\u7a0b\uff1a wallpaper engine\u662f\u4e00\u6b3e\u684c\u9762\u52a8\u6001\u58c1\u7eb8\u8f6f\u4ef6\uff0c\u73b0\u5df2\u5728steam\u4e0a\u53d1\u552e\u3002\u76f8\u4fe1\u6709\u5f88\u591a\u73a9\u5bb6\u53ef\u80fd\u5df2\u7ecf\u5f00\u59cb\u4f7f\u7528\u8fd9\u6b3e\u8f6f\u4ef6\u5236\u4f5c\u81ea\u5df1\u5fc3\u7231\u7684\u58c1\u7eb8\u5566\uff01 \u5177\u4f53\u529f\u80fd \u8bbe\u7f6e:\u6027\u80fd\u65b9\u9762\u53ef\u4ee5\u9009\u62e9\u66f4\u6539\u56de\u653e\u65f6\u8bbe\u7f6e

\u53ef\u4ee5\u5c06\u5f71\u7247\u8bbe\u7f6e\u4e3a\u80cc\u666f\u684c\u9762\uff0c\u8fd9\u6837\u4f60\u7684\u684c\u9762\u653e\u80cc\u666f\u7535\u5f71\u4e86\u3002\u8fd9\u5c31\u662f\u52a8\u6001\u539f\u7406\u3002\u4f60\u8981\u627e\u5408\u9002\u7684\u7247\u65ad\u6765\u8bbe\u7f6e\u3002\u6216\u4f7f\u7528\u52a8\u6001\u7684GIF\u7167\u7247\u4f5c\u4e1a\u80cc\u666f\u56fe\u7247\u4e5f\u53ef\u4ee5\u3002

:原理

动态壁纸为:在手机上点击 Menu→Wallpapers→Live wallpapers→然后打开自己的程序。建个最简单的动态壁纸的步骤如下:

1.在rex/xml中新建一个.xml.其中注册一个wallpaper.假设这个名字为ab.xml(下文要用到,可随意设置,没要求)

最简单的就是写 这一句,这样的话打开动态壁纸就会出现只出现一个按钮(左图),一般我们不这样做,要像右图这样子。

Android 动态壁纸原理 及 例子 Android 动态壁纸原理 及 例子

若动态壁纸"设置..."(Setting...)你想连接Activity,也在这里指定,比如:

android:settingsActivity="com.birbeck.wallpaperslideshow.SettingsActivity" (这个一般是继承了PreferenceActivity类的Activity。就是首选项模式的类),要设置了这个属性,就会如有图所示了。

Android 动态壁纸原理 及 例子

如上截图是手机上的动态壁纸列表,你也可以通过android:description=“XXX”来设置描述,通过anroid:thumbnail="XX"来设置该动态壁纸的图片。

2.接下来要在manifest中注册一个service。

XXX

在这个servier中要指定你继承WallpaperService类的路径,指定1中设置的xml,设置广播,设置允许权限等。比如:

通过android:name="com.bn.ex12f.Sample12_6_WallPaper"指定继承WallpaperService的类 ,

通过android:permission="android.permission.BIND_WALLPAPER">是让该service有能设置为壁纸的权限,没有的话该壁纸只能被预览。

这一种还必须设置一个,用来监听Android系统发出的动态壁纸的广播。

3、怎样实现WallpaperService?
WallpaperService与其他的service唯一的不同就是,你必须要增加一个方法onCreateEngine(),它会返回一个WallpaperService.Engine,这个engine才是负责绘制壁纸以及响应与用户交互事件的核心部件。这个service代码结构如下:
view plaincopy to clipboardprint?

public class TimeWall extends WallpaperService {

public Engine onCreateEngine() {
return new TimeEngine();
}

public class TimeEngine extends Engine {
// ...more code
}
}

在这个方法里只需返回一个Engine的子类对象就可以了。所以重头戏,写动态壁纸程序的主要工作量就是实现Engine的子类。

类TimeEngine才是处理壁纸的核心类,我们会在类TimeEngine中加上自己的逻辑以完成壁纸的绘制、变化以及销毁。Engine的生命周期与大多数OPhone应用程序组件,比如activity类似,都是从onCreate()开始,在销毁时调用onDestory()方法。不同的是WallpaperService会提供一个surface用来绘制壁纸,所以在生命周期中多一个onSurfaceCreated与onSurfaceDestroyed的过程。下面是一个最简生命周期:

也就是说只要我们实现上面四个方法,一个基本的LiveWallpaper就可以完成了。

4.实现Engine的子类

简而言之,该类的作用就是让你去实现动态壁纸的具体代码。以上三点可认为是格式化的一些东西。这个类不需要强制继承任何方法,现在简述一下一般要重写的方法的功能。

public void onCreate(SurfaceHolder surfaceHolder){...}

public void onDestroy(){...}这俩方法就不说明了

public void onVisibilityChanged(boolean visible)

{
if(visible)//如果可见
{
...
}
else//如果不可见
{

...
}
}该方法作用是当前动态壁纸可见时要画图。重写这个方法一般如以上格式所示。

public void onSurfaceCreated(SurfaceHolder holder) //重写onSurfaceCreated方法
{
super.onSurfaceCreated(holder);//调用父类对应方法
}该方法是应用程序第一次创建时要调用。可在这个方法里调用父类对应方法。该方法执行完毕后系统会立即调用onSurfaceChanged方法(如下)。若在这里调用父类对应方法,那么就在onSurfaceChanged中实现主要功能。

public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height)

{

...

}该方法有两个用处。1.若动态壁纸要随着横屏竖屏而切换可在这里写。2.想和用户交互的话,比如用户滑动屏幕时,点击屏幕时等。3.注意:onSurfaceCreated调用之后会立即调用该方法。

动态壁纸为:在手机上点击 Menu→Wallpapers→Live wallpapers→然后打开自己的程序。建个最简单的动态壁纸的步骤如下:

1.在rex/xml中新建一个.xml.其中注册一个wallpaper.假设这个名字为ab.xml(下文要用到,可随意设置,没要求)

最简单的就是写 这一句,这样的话打开动态壁纸就会出现只出现一个按钮(左图),一般我们不这样做,要像右图这样子。

Android 动态壁纸原理 及 例子 Android 动态壁纸原理 及 例子

若动态壁纸"设置..."(Setting...)你想连接Activity,也在这里指定,比如:

android:settingsActivity="com.birbeck.wallpaperslideshow.SettingsActivity" (这个一般是继承了PreferenceActivity类的Activity。就是首选项模式的类),要设置了这个属性,就会如有图所示了。

Android 动态壁纸原理 及 例子

如上截图是手机上的动态壁纸列表,你也可以通过android:description=“XXX”来设置描述,通过anroid:thumbnail="XX"来设置该动态壁纸的图片。

2.接下来要在manifest中注册一个service。

XXX

在这个servier中要指定你继承WallpaperService类的路径,指定1中设置的xml,设置广播,设置允许权限等。比如:

通过android:name="com.bn.ex12f.Sample12_6_WallPaper"指定继承WallpaperService的类 ,

通过android:permission="android.permission.BIND_WALLPAPER">是让该service有能设置为壁纸的权限,没有的话该壁纸只能被预览。

这一种还必须设置一个,用来监听Android系统发出的动态壁纸的广播。

3、怎样实现WallpaperService?
WallpaperService与其他的service唯一的不同就是,你必须要增加一个方法onCreateEngine(),它会返回一个WallpaperService.Engine,这个engine才是负责绘制壁纸以及响应与用户交互事件的核心部件。这个service代码结构如下:
view plaincopy to clipboardprint?

public class TimeWall extends WallpaperService {

public Engine onCreateEngine() {
return new TimeEngine();
}

public class TimeEngine extends Engine {
// ...more code
}
}

在这个方法里只需返回一个Engine的子类对象就可以了。所以重头戏,写动态壁纸程序的主要工作量就是实现Engine的子类。

类TimeEngine才是处理壁纸的核心类,我们会在类TimeEngine中加上自己的逻辑以完成壁纸的绘制、变化以及销毁。Engine的生命周期与大多数OPhone应用程序组件,比如activity类似,都是从onCreate()开始,在销毁时调用onDestory()方法。不同的是WallpaperService会提供一个surface用来绘制壁纸,所以在生命周期中多一个onSurfaceCreated与onSurfaceDestroyed的过程。下面是一个最简生命周期:

也就是说只要我们实现上面四个方法,一个基本的LiveWallpaper就可以完成了。

4.实现Engine的子类

简而言之,该类的作用就是让你去实现动态壁纸的具体代码。以上三点可认为是格式化的一些东西。这个类不需要强制继承任何方法,现在简述一下一般要重写的方法的功能。

public void onCreate(SurfaceHolder surfaceHolder){...}

public void onDestroy(){...}这俩方法就不说明了

public void onVisibilityChanged(boolean visible)

{
if(visible)//如果可见
{
...
}
else//如果不可见
{

...
}
}该方法作用是当前动态壁纸可见时要画图。重写这个方法一般如以上格式所示。

public void onSurfaceCreated(SurfaceHolder holder) //重写onSurfaceCreated方法
{
super.onSurfaceCreated(holder);//调用父类对应方法
}该方法是应用程序第一次创建时要调用。可在这个方法里调用父类对应方法。该方法执行完毕后系统会立即调用onSurfaceChanged方法(如下)。若在这里调用父类对应方法,那么就在onSurfaceChanged中实现主要功能。

public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height)

{

...

}该方法有两个用处。1.若动态壁纸要随着横屏竖屏而切换可在这里写。2.想和用户交互的话,比如用户滑动屏幕时,点击屏幕时等。3.注意:onSurfaceCreated调用之后会立即调用该方法。

动态桌面一般都采用gif格式的图片,所以会动的,普通静态图片是jgp格式

  • UPUPOO浜屾鍏鍔ㄦ佹闈V3001瀹樻柟鐗圲PUPOO浜屾鍏冨姩鎬佹闈3001瀹樻柟鐗堝姛 ...
    绛旓細鍦╱pupoo涓寰楁柊鍏ユ墜鐨勫绾镐笉婊℃剰锛岄偅涔堜綘鍙互杩涘叆鎴戠殑椤甸潰锛岀偣鍑汇愬彇娑堝绾搞戯紝杩欐牱妗岄潰涓婄殑澹佺焊灏变細鎭㈠鍒拌蒋浠杩愯涔嬪墠鐨勫绾革紝浣嗘槸妗岄潰鐨勭編鍖栫粍浠朵緷鐒朵繚鐣欍傚綋鐒朵簡浣犱篃鍙互閫氳繃鐩存帴鍏抽棴upupoo杞欢涔熻兘鎭㈠鍒板師鏉ョ殑妗岄潰澹佺焊銆傘愭庝箞鏄剧ず妗岄潰鍥炬爣銆戝緢澶氱敤鎴峰彂鐜拌嚜宸卞湪浣跨敤upupoo鍔ㄦ澹佺焊鍚庯紝妗岄潰涓婄殑鍥炬爣娑堝け涓...
  • 鎬庝箞寮鍔ㄦ佹闈?
    绛旓細1銆佸彲浠ヨ繘鍏ャ恑涓婚--鎴戠殑--澹佺焊--鍔ㄦ澹佺焊銆戯紝閫夋嫨澹佺焊搴旂敤鍗冲彲銆傚叾瀹冩儏鍐典笅鎵嬫満鏈韩涓嶆敮鎸佸皢鍔ㄦ佸浘鐗囧拰瑙嗛璁剧疆鎴妗岄潰澹佺焊鍜岄攣灞忋2銆佸彲浠ュ皾璇曚娇鐢ㄧ涓夋柟杞欢瀹炵幇銆傚娉細鎶栭煶鐨勫弬鑰冭缃柟娉曪細銆愭姈闊崇晫闈--鐧诲綍鎶栭煶璐﹀彿--鎵惧埌瑙嗛--鐐瑰嚮鍙充笅瑙掔殑鈥滃垎浜濇寜閽--宸︽粦鎵惧埌鈥滃姩鎬佸绾糕--涓嬭浇璁剧疆鍗冲彲...
  • win10鍔ㄦ佹闈鎬庝箞璁剧疆
    绛旓細1銆鍔ㄦ佹闈鐨勮缃渶瑕佸熷姪涓涓狣eskScapes鐨勮蒋浠讹紝鍙互鍦ㄧ櫨搴︿腑杩涜涓嬭浇銆2銆佷笅杞戒箣鍚杩愯瀹夎锛3銆佸湪璁剧疆涔嬪墠锛屽厛鍙抽敭鐐瑰嚮妗岄潰绌虹櫧澶勭湅灞炴ф涓殑涓浜涘睘鎬э紱4銆佽缃畬姣曚箣鍚庯紝鍐嶇偣寮浣犵殑灞炴ф鏌ョ湅灞炴э紱5銆佹渶鍚庯紝鎸戦夎嚜宸卞枩娆㈢殑鍔ㄦ佽儗鏅氨鍙互鍟︺
  • 鎵嬫満浣跨敤鍔ㄦ佹闈鏈変粈涔堝潖澶,姣斿CPU浣跨敤鐜囥佽楃數閲忎箣绫荤殑??
    绛旓細鍧忓锛氬崰杩愯鍐呭瓨锛圧AM锛夛紝鍑虹幇鍝嶅簲鐜板欢杩熸垨鍗¢】銆傞渶瑕丆PU澶勭悊鍔ㄦ鍥惧儚锛屻傝楃數閲忎篃浼氭瘮闈欐妗岄潰澶т竴浜涖傚鐪肩潧涓嶅ソ銆
  • 鍏充簬鍔ㄦ佹闈鍗犵敤cpu100%鐨勯棶棰
    绛旓細浣犵湡鐨勭‘瀹氭槸鍥犱负鍔ㄦ佹闈鐨勭紭鏁呭悧?濡傛灉鐪熺殑鏄姩鎬佹闈㈢殑缂樻晠,閭d箞浣犲彧瑕佹妸鍔ㄦ佹闈㈠嵏杞芥帀灏卞彲浠ヤ簡.鍏跺疄妗岄潰鑳屾櫙杩欎釜涓滆タ娌℃湁浠涔堢敤澶勭殑,鐧界櫧娴垂鍐呭瓨.璇曢棶涓鍙:浣犱拱鐢佃剳闅鹃亾灏辨槸涓轰簡鐪嬫闈㈢殑鍚?
  • windows7 鎬庝箞鍒朵綔鍔ㄦ佹闈
    绛旓細棣栧厛涓嬭浇涓涓蒋浠讹紝Windows 7 DreamScene Activator 锛屼笅杞藉ソ涔嬪悗瀹夎銆傚畨瑁呭ソ涔嬪悗杩愯杞欢銆傞夋嫨Enable DreamScene 閫夋嫨濂戒箣鍚庤祫婧愮鐞嗗櫒浼氳嚜鍔ㄩ噸鍚竴涓嬶紝涔嬪悗鎵惧埌浣犳兂鐢ㄤ綔妗岄潰鐨勮棰戯紙鍙互鏄嚜宸卞枩娆㈢殑MV鎴栬呭枩娆㈢殑褰曞儚涔嬬被鐨勶級锛屽彸閿棰戯紝浼氭湁set as desktop background鐨勯夐」锛岀偣鍑婚夋嫨锛岃繖鏃剁數鑴戞闈㈠氨浼氳...
  • 涓轰粈涔圛os鐏悿鍔ㄦ佹闈璁剧疆浜嗗姩涓嶄簡?鎴戠殑鎵嬫満鏄6plus銆
    绛旓細鍙梚os绯荤粺鏉冮檺闄愬埗锛岀洰鍓嶅彧鏈6s浠ヤ笂鏈哄瀷鍙互浣跨敤锛屽苟涓斿彧鏄攣灞忚繕闇瑕佹寜鍘嬫墠鍙互鍔ㄤ笖鏃犲0闊炽傝屼笖6s浠ヤ笂杩樺姩涓嶄簡涓鑸湁涓や釜鍘熷洜锛屼竴涓槸璁惧畾鎴愰潤鎬佸绾镐簡锛屼簩鏄瀹氭垚涓诲睆澹佺焊浜嗐備綘鍙渶瑕佸皢澹佺焊閲嶆柊璁剧疆涓洪攣灞忓睆骞曞绾革紝鍗冲彲鐪嬪埌鍔ㄦ澹佺焊鏁堟灉浜嗐侰isco鐨勭綉闄呮搷浣滅郴缁燂紙iOS锛夋槸涓涓负缃戦檯浜掕繛浼樺寲鐨勬搷浣滅郴缁-...
  • 鐢佃剳妗岄潰鐨鍔ㄦ澹佺焊瀵圭數鑴戞湁娌℃湁褰卞搷?
    绛旓細鍔ㄦ澹佺焊浣滀负妗岄潰瀵逛簬浣庨厤鐨勭數鑴戞潵璇磋偗瀹氭湁褰卞搷锛屼絾浣犺繖涓厤缃尯楂樼殑锛屽奖鍝嶅彲浠ュ拷鐣ヤ笉璁°
  • 鎴戠殑鐢佃剳璁剧疆浜嗕竴涓鍔ㄦ澹佺焊,涔嬪悗鎵撲笉寮鏉ヤ簡,鎬庝箞鍔?
    绛旓細鍔ㄦ澹佺焊鑳藉寰堝ソ鐨勭紦瑙e伐浣滅殑鍘嬪姏锛岃鐢佃剳鎵嬫満鍙樺緱鏈夎叮锛屾洿鍔犲績鏃风鎬°傚姩鎬佸绾告槸鐩稿涔嬪墠澶у鐔熺煡鐨勯潤鎬佸绾歌岃█鐨勩備腑鏂囧悕 鍔ㄦ佸绾 閫傜敤鑼冨洿 鐢佃剳鎵嬫満绛妗岄潰 浼樼偣 鍔ㄦ併佷釜鎬у寲 绯荤粺瑕佹眰 wp7.0銆亀p7.8銆亀p8.0 浣滅敤 缂撹В宸ヤ綔鐨勫帇鍔涳紝璁╃數鑴戞墜鏈哄彉寰楁湁瓒o紝鏇村姞蹇冩椃绁炴 蹇 瀵艰埅 鍔熻兘鐗圭偣浣跨敤绔 ...
  • 涓轰粈涔堜笅杞戒簡鍔ㄦ佹闈鍙兘鐪嬩竴浼
    绛旓細鍦ㄥ井杞煡璇嗗簱314056涓svchost.exe鏈夊涓嬫弿杩:svchost.exe 鏄粠鍔ㄦ閾炬帴搴 (DLL) 涓杩愯鐨勬湇鍔$殑閫氱敤涓绘満杩涚▼鍚嶇О銆 鍏跺疄svchost.exe鏄疻indows XP绯荤粺鐨勪竴涓牳蹇冭繘绋嬨俿vchost.exe涓嶅崟鍗曞彧鍑虹幇鍦╓indows XP涓,鍦ㄤ娇鐢∟T鍐呮牳鐨刉indows绯荤粺涓兘浼氭湁svchost.exe鐨勫瓨鍦ㄣ備竴鑸湪Windows 2000涓璼vchost.exe杩涚▼鐨勬暟鐩负2涓,...
  • 扩展阅读:时间与日期桌面下载 ... 手机桌面虚拟少女 ... 手机桌面动态小人 ... 苹果手机动态桌面软件 ... 免费动态壁纸主题大全 ... 苹果手机动态壁纸 ... 手机桌面二次元小人 ... 好看的动态背景15秒 ... 一键找回原来桌面 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网