`

android动态壁纸1——初步框架(有背景,能使用,仿可爱宝贝)

阅读更多

可爱宝贝下载链接

一、简介:

        正如别人所说的一样:动态壁纸是一个Android应用程序,包括一个服务(WallpaperService)。该服务必须包括一个引擎(WallpaperService.Engine)。该引擎是连接用户、桌面、系统之间的桥梁。它也可以绘制桌面壁纸。动态壁纸是一个apk应用,但是不同的是这个在我们实现的时候可以不用activity

二、权限与声明:

        在AndroidManifest.xml中添加权限android:permission="android.permission.BIND_WALLPAPER",否则该壁纸只能预览,不能被实际应用

        在AndroidManifest.xml中添加声明android:name="android.service.wallpaper.WallpaperService"以便系统识别(后面代码中可见)

三、操作:

  1.创建一个android工程(没有activity和布局文件的空工程)——MyWallPaper

  2.在src下创建包com.mywallpaper.service,并创建一个服务类-MyWallPaperService

  3.在AndroidManifest.xml中配置服务的信息

其中android:name是你的service的包类路径;

android:icon是在动画壁纸列表中显示的图标(相当于应用列表中的图标)

android:label:壁纸的标签,相当于一个应用的名称

android:resource="@xml/mywallpaper"是其信息,接下来实现。

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <service
            android:name="com.mywallpaper.service.MyWallpaperService"
            android:enabled="true"
            android:icon="@drawable/icon"
            android:label="@string/app_name"
            android:permission="android.permission.BIND_WALLPAPER" >
            <intent-filter android:priority="1" >
                <action android:name="android.service.wallpaper.WallpaperService" />
            </intent-filter>
            <meta-data
                android:name="android.service.wallpaper"
                android:resource="@xml/mywallpaper" />
        </service>
    </application>

   4.壁纸信息实现:在res目录下创建文件夹xml,添加xml文件mywallpaper.xml如下内容:

其中android:description是描述;后面两行信息可以不用

 

<wallpaper 
    xmlns:android="http://schemas.android.com/apk/res/android"  
    android:thumbnail="@drawable/icon" 
    android:description="@string/description"
/>

 

   5.MyWallPaperService的实现:

     5.1 继承WallPaperService并实现其方法

 

 

 

 

     5.2 创建内部类MyEngine并继承Engine;

 

     5.3 提供初始化图片的方法

/**
	 * 初始图片
	 */
	public void initImg() {
		backgound = BitmapFactory.decodeResource(this.getResources(),
				R.drawable.backgound);
	}

    5.4 提供绘画的方法

	/**
	 * 绘画的方法
	 */
	private void draw(){
		SurfaceHolder holder = engine.getSurfaceHolder();
		Canvas canvas = holder.lockCanvas(null);
		if (canvas != null) {
			canvas.drawBitmap(backgound, 0, 0, null);
		}
		
		holder.unlockCanvasAndPost(canvas);
	}

 

      5.5 engine中创建时初始化图片

		private final Paint paint = new Paint(); // 创建画笔

		@Override
		public void onCreate(SurfaceHolder surfaceHolder) {
			super.onCreate(surfaceHolder);
			paint.setAntiAlias(true);// 打开抗锯齿
			initImg();// 初始化位图资源
		}
	}

 

     5.6 surface被创建时绘图

		/**
		 * 该方法是应用程序第一次创建时要调用。可在这个方法里调用父类对应方法。
		 * 该方法执行完毕后系统会立即调用onSurfaceChanged方法
		 */
		@Override
		public void onSurfaceCreated(SurfaceHolder holder) {
			// TODO Auto-generated method stub
			super.onSurfaceCreated(holder);
			draw();
		}

   6.至此即可运行:




 
 

  • 大小: 647.4 KB
  • 大小: 701.5 KB
  • 大小: 182.1 KB
1
0
分享到:
评论

相关推荐

    AndroidStudio————实战演练——仿美团外卖菜单

    在本项目中,"AndroidStudio————实战演练——仿美团外卖菜单"是一个专注于使用Android Studio开发的应用程序实战案例,目标是创建一个类似于美团外卖的菜单功能。这个项目涵盖了多个Android开发的关键知识点,...

    android 应用 源代码——表格框架布局

    还有几十个电子书 和 源代码 请点击 我的名字 都是最近半年收集的android 开发资料和源代码,挑选出好的给大家

    Android进阶——框架打造之IOC框架

    Android进阶——框架打造之IOC框架 实现通过Id找到控件的功能 实现通过Id找到Color、String资源 实现绑定view的点击事件、长按事件 实现绑定SetContentView 实现绑定网络的检测功能

    3D动态壁纸——百纳水族馆.zip

    本案例为3D水族馆动态壁纸,在该壁纸中有许多本身有动作并可以自由游动的鱼,地面中有不断一张一合的珍珠贝并一直在冒气泡,可以点击地面给鱼喂食,还有几处珊瑚也在不断地冒出气泡,并随气泡随高度增加而不断变大,...

    Android之仿微信6.0——粗仿

    "Android之仿微信6.0——粗仿"这个项目旨在帮助开发者了解如何创建一个类似微信6.0版本的Android应用。这个教程由CSDN博主yangzhaomuma提供,详细介绍了实现过程。 首先,我们要关注的是UI设计。微信6.0的用户界面...

    Android数据库框架——Sugar

    Android数据库框架——Sugar

    《Android C++高级编程——使用NDK》_源码.zip

    《Android C++高级编程——使用NDK》提供了Java原生接口(JNI)的概述、Bionic API、POSIX 线程和套接字、C++支持、原生图形和声音API以及NEON/SIMD优化,在一个游戏应用案例的帮助下,你将学到很多关键技能。...

    Android源码——樱花漂落的动态壁纸.rar

    【Android 源码解析——樱花漂落动态壁纸】 在Android平台上,动态壁纸为用户提供了一种生动、个性化的手机桌面体验。"Android源码——樱花漂落的动态壁纸"项目,便是这种体验的一个实例,它展示了如何利用Android ...

    Android大作业-仿知乎日报.zip

    Android大作业——仿知乎日报.zipAndroid大作业——仿知乎日报.zipAndroid大作业——仿知乎日报.zipAndroid大作业——仿知乎日报.zipAndroid大作业——仿知乎日报.zipAndroid大作业——仿知乎日报.zipAndroid大作业...

    Android学习笔记(十)——实现新闻列表

    Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) ...

    Android中文翻译组——Android开发者指南(2).chm

    Android中文翻译组是一个非盈利性质的开源...有在线的中文API、开发者指南、开源项目以及Android视频专栏。 本合集发布日期:2012年1月31日,涵盖历次合集内容,最新版请关注翻译组微博:http://weibo.com/android2。

    物联网智能插座 Android App部分——本科毕业设计项目源码.zip

    物联网智能插座 AndroidApp部分——本科毕业设计项目源码物联网智能插座 AndroidApp部分——本科毕业设计项目源码物联网智能插座 AndroidApp部分——本科毕业设计项目源码物联网智能插座 AndroidApp部分——本科毕业...

    Android 动态设置程序activity背景图片源码

    在Android开发中,动态设置Activity背景图片是一项常见的需求,它能为用户带来更丰富的交互体验。本文将深入探讨如何通过源码实现这一功能,并提供一个实际的案例——wallTest。 首先,我们需要理解Android中的...

    Android自定义View——仿1号店垂直滚动广告条实现

    Android自定义View——仿1号店垂直滚动广告条实现 Android自定义View——仿1号店垂直滚动广告条实现

    免费 android 应用 源代码——记事本

    1. **Android Studio使用**:作为Android开发的官方集成开发环境,理解其项目结构和基本操作是必要的。 2. **Activity生命周期**:记事本应用可能涉及多个Activity,了解它们的启动、暂停、恢复和销毁过程对于管理...

    Android之本地缓存——LruCache(内存缓存)与DiskLruCache(硬盘缓存)统一框架

    Android之本地缓存——LruCache(内存缓存)与DiskLruCache(硬盘缓存)统一框架 [注:本内容来自网络,在此分享仅为帮助有需要的网友,如果侵犯了您的权利,麻烦联系我,我会第一时间删除,谢谢您。]

    Android源码——使用opengl写动态壁纸的类库_new_32.zip

    Android源码——使用opengl写动态壁纸的类库_new_32.zip

    安卓Android源码——高仿奇艺.zip

    安卓Android源码——高仿奇艺.zip

    Android源码——afinal开源框架实例源码_new_03.zip

    "Android源码——afinal开源框架实例源码_new_03.zip" 这个标题表明我们关注的是一个与Android操作系统相关的开源框架——Afinal的实例源码。"New_03"可能表示这是一个更新版本或第三部分的代码示例,暗示我们将会...

Global site tag (gtag.js) - Google Analytics