Android桌面管理(1),美团架构师深入讲解Android开发

改变壁纸-开发动态壁纸


  1. 所谓动态壁纸,就是指Android桌面不再是简单的图片,而是运行中的动画,这个动画是由程序实时绘制的,因此被称为动态壁纸

  2. 为了帮助我们开发动态壁纸,Android提供了WallpaperService基类,动态壁纸的实现类继承该基类.在Android应用中开发动态壁纸的步骤如下:

1)开发一个子类继承WallpaperService基类

2)继承WallpaperService基类时必须重写onCreateEngine()方法,该方法返回WallpaperService.Engine子类对象

3)我们还需要实现WallpaperService.Engine子类,并重写其中的onVisibilityChanged(boolean visible),onOffsetsChanged()方法

  1. 下面展示一下在代码中重写的两个重要方法

在这里插入图片描述

这两个方法就是重写的WallpaperService.Engine的onVisibilityChanged(),onOffsetsChanged()方法,并且指出了桌面显示时需要调用drawFrame()方法进行绘制,drawFrame方法绘制完成之后通过Handler对象指定0.1秒后重回

在这里插入图片描述

  1. 关于动画效果在代码中的实现

在这里插入图片描述

通过循环创建多个矩形,然后每次进行绘制的时候让count++,;并且程序中针对图形进行了位移和旋转变换,这样就能够保证达到一个动画效果

  1. 写完核心代码之后,需要在AndroidManifest.xml问配置该Serviced.这里需要注意的是,`配置动态壁纸Service与配置普通service有一点区别,需要指定如下两项

在这里插入图片描述

  1. 指定运行动态壁纸,需要开启权限

  2. 同时还要为动态壁纸设置meta-data配置

  1. 在上面AndroidManifest.xml中指定了将动态壁纸的meta-data放在了@xml/livewallpaper中定义,因此程序还需要在res/xml目录下增加一个livewallpaper.xml文件

在这里插入图片描述

  1. 进行如上的配置之后,我们可以通过运行模拟器看到初步的效果,能够简单实现一个动态效果,这也说明这种动态壁纸可以为我们提供在Android桌面上绘图的能力.

快捷方式


  1. 最新的Android允许为应用添加快捷方式:当用户长按图标时,系统会显示该应用的某几个功能的快速链接,用户可以通过快捷方式迅速打开应用的某个功能

  2. 添加快捷方式的方式

  1. 静态方式:只需要通过AndroidManifest.xml文件配置即可添加快捷方式

  2. 动态方式:通过ShortcutManager可以为应用动态添加,删除,更新快捷方式

快捷方式–静态添加


  1. 静态添加的主要操作:

1)在主Activity中添加name为android.app.shortcuts的<meta-data…/>元素,该元素指定静态快捷方式的配置文件

2)为静态快捷方式添加配置文件

  1. 下面是AndroidManifest.xml文件的配置部分

在这里插入图片描述

  1. 下面是在res/xml目录下配置的文件

在这里插入图片描述

  1. 编译运行应用时,在下图中任意图标长按即可显示静态快捷的标识,表示可以生成快捷键

在这里插入图片描述

桌面控件


  1. 所谓桌面控件,就是指能直接显示在Android系统桌面上的小程序,一般来说,我们可以把用户使用非常频繁的程序做成桌面控件,这样用户就可以直接在桌面上进行操作了

  2. 桌面控件是通过BroadcastReceiver的形式来进行控制的,因此每个桌面控件都对应于一个BroadcaseReceiver.为了简化桌面控件的开发,Android系统提供了一个AppWidgetProvider类,他是BroadcastReceiver的子类.也就是说,我们开发桌面控件只需要继承AppWidgetProvider类即可

  3. AppWidgetProvider提供了4个很重要的方法

onUpdate():负责更新桌面控件的方法;实现桌面控件通常会考虑重写该方法

onDeleted():当一个或多个桌面控件被删除时回调该方法

OnEnabled():当接收到ACTION_APPWIDGET_ENABLED Broadcast时回调该方法

onDisabled():当接收到ACTION_APPWIDGET_DISABLED Broadcast时回调该方法

  1. 对于下面的时钟小示例,只需要定义一个AppWidgetProvider的子类即可,并重写它的onUpdate()方法即可

1)创建一个RemoteViews对象,创建该对象时可以指定加载指定的页面布局文件

2)如果需要改变上一步所加载的界面布局文件的内容,则可以通过RemoteViews对象进行修改

3)创建一个ComponentName对象

&emsp4)调用AppWidgetManager更新桌面控件
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后

那我们该怎么做才能做到年薪60万+呢,对于程序员来说,只有不断学习,不断提升自己的实力。我之前有篇文章提到过,感兴趣的可以看看,到底要学习哪些知识才能达到年薪60万+。

通过职友集数据可以查看,以北京 Android 相关岗位为例,其中 【20k-30k】 薪酬的 Android 工程师,占到了整体从业者的 30.8%!

北京 Android 工程师「工资收入水平 」

今天重点内容是怎么去学,怎么提高自己的技术。

1.合理安排时间

2.找对好的系统的学习资料

3.有老师带,可以随时解决问题

4.有明确的学习路线

当然图中有什么需要补充的或者是需要改善的,可以在评论区写下来,一起交流学习。

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

习。

[外链图片转存中…(img-yQ7ua5rl-1712432828899)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值