Android_动态壁纸介绍

摘要:
再写动态壁纸的时候用不到。看Manifest.xml文件就可以看出,在组件里有一个这表明当你设置动态壁纸时这个Service才启动。android.service.wallpaper.WallpaperService.Engine:这个类是WallpaperService的内部类,负责动态壁纸的各个方面。下面是一个最简生命周期:这是AndroidManifest.xml文件中的一个配置信息,这个地方很重要。android:permission="android.permission.BIND_WALLPAPER"意思是任何程序调用我们的服务都需要有一个指定的权限。Android的Home程序已经具备了该权限,所以它会工作得很好。这个标签告诉Android它是个什么样的服务。

Android_动态壁纸介绍第1张

Android的动态壁纸主要用到三个类:

android.app.WallpaperManager:这个类主要用于获取系统壁纸的信息。再写动态壁纸的时候用不到。

android.service.wallpaper.WallpaperService:这个类作为服务在运行,同时负责产生一个Engine

同时,在此类中有一个必须继承的方法为:nCreateEngineWallpaperServiceonCreateEngine这个方法比较特殊,虚拟机没有在WallpaperService里的onCreate方法里调用,更不用你自己在其它Activity里用startService或者bindService来启动它是在程序运行之后,由你在桌面上点击menu->Wallpaper->LiveWallpapers->确定->你的项目名称。这个时候虚拟机调用就会onCreateEngine方法。

还有就是这个Service是什么时候启动的呢?看Manifest.xml文件就可以看出,在组件<service>里有一个<actionandroid:name="android.service.wallpaper.WallpaperService"/>这表明当你设置动态壁纸时这个Service才启动。

android.service.wallpaper.WallpaperService.Engine:这个类是WallpaperService的内部类,负责动态壁纸的各个方面。

介绍这个类里的几个函数

onOffsetsChanged():
这个一般在几个屏幕滑动的时候调用而且当你拖动A屏幕向B屏幕过度时会随着B屏幕的显示面积的变大或者变小一直调用这个方法
onVisibilityChanged()
这个是屏幕显示或者不显示的时候调用的必须完全覆盖屏幕才会调用
onCommand()
可以给壁纸发送一些命令让其执行
onTouchEvent()
处理壁纸的点击时间的
setTouchEventsEnabled(true)
作用是使壁纸能响应touchevent,默认是false

Engine的生命周期与大多数Android应用程序组件,比如activity类似,都是从onCreate()开始,在销毁时调用onDestory()方法。不同的是WallpaperService会提供一个surface用来绘制壁纸,所以在生命周期中多一个onSurfaceCreatedonSurfaceDestroyed的过程。下面是一个最简生命周期:

这是AndroidManifest.xml文件中的一个配置信息,这个地方很重要。

<application

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name" >

        <service

            android:label="@string/app_name"

            android:name=".TimeWall"

            android:permission="android.permission.BIND_WALLPAPER" >

            <intent-filter >

                <action android:name="android.service.wallpaper.WallpaperService" />

            </intent-filter>

            <meta-data

                android:name="android.service.wallpaper"

                android:resource="@xml/alive_wall" />

        </service>

</application>

<service>定义了一个,将运行在背景上并且对事件有响应的Android服务。android:permission="android.permission.BIND_WALLPAPER"意思是任何程 序调用我们的服务都需要有一个指定的权限。Android的Home程序已经具备了该权限,所以它会工作得很好。

< intent-filter >这个标签告诉Android它是个什么样的服务。

< meta-data>标签让它知道在哪能找到关于wallpaper的额外信息。android:resource被设为"@xml/wallpaper"(名字任意,但得对应上),这个值最好设置在res/xml/wallpaper.xml 文件

现附上源代码,里面有详细解释供大家参考!(下载地址复制到地址栏里有效,单纯的点击不会跳到链接)

csdn零分下载:http://download.csdn.net/detail/zqiang_55/4604044

大家感觉文章不错,就帮忙顶下应用:http://www.talkphone.cn/Down/Soft/Detail/49172_0.html

免责声明:文章转载自《Android_动态壁纸介绍》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇数据可视化之PowerQuery篇(七)Power Query应用技巧:批量更改列名Centos 7 配置邮件发送下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

delphi 安卓配置教程

本教程以 delphi 10.2.2.2004 为例,演示 delphi 安卓配置步骤 1.打开 Android Tools 2. 选择合适的版本。比如:我的小米4 LTE 是 andorid 6.0 ,我就选 android 6.0 (API23) 和 23.0.1 ,其它可以一律不选。 明白了吧,更多详细步骤,请自动搜索 android 工具配置方法...

用adb命令组装PowerShell实用小工具——Android测试小助手

[本文出自天外归云的博客园] 简介 APP性能测试一般对以下几个方面进行测试: 1.启动时间(可以通过本工具测试); 2.CPU的占用(可以通过本工具测试); 3.内存的占用(可以通过本工具测试); 4.流量的耗用(可以通过本工具测试); 5.电量的耗用(用户实际使用中感知即可)。 除了可以做以上这几个专项测试外,本工具还能进行monkey测试等等。 可...

安卓 节点进度条NodeProgressBar

安卓节点进度NodeProgressBar条如图:  NodeProgressView.class 文件代码 import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graph...

Android弹出输入提示框--PopupWindow实现

  前言  之前直接用Dialog实现了弹出对话框。现在尝试用更好地解决方案--PopupWindow类--来实现   1.首先搞一个弹出框布局,和之前类似。   这样的东西,它的布局是这样: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android...

android Studio 二维码扫一扫 使用精简过的zxing

今天学习做个扫一扫  于是就上百度找找前人的作品,终于找到了,于是就开始搞 我使用的是 最新的android Studio Android Studio 3.1.2Build #AI-173.4720617, built on April 14, 2018JRE: 1.8.0_152-release-1024-b02 amd64JVM: OpenJDK 6...

用广播监听安卓设备电量状态

  发送通知   这次邮件我们将会讨论怎么获取电量状态在安卓设备上,为了完成这个目标,我们将会使用到广播。 What is BroadcastReceiver?A broadcast receiver is an Android component which allows you to register for system or applic...