21天打卡Andoid学到的一些小知识-第九十天

简介: 今天我们学习打卡的内容是:Android 9.0 10.0 Launcher3 时钟动态图标的定制化

今天我们学习打卡的内容是:Android 9.0 10.0 Launcher3 时钟动态图标的定制化


当然此次学习的文章链接将会放置文章末尾,有需要的朋友自行查看。


大家可能会有注意到,每逢重大节日,很多应用图标会自动调整,类似于春节版、国庆版等等。 这个功能最简单的实现方式可能就是发布一个新的版本了,直接替换相关资源,然后应用升级体验。 但是这种方式工作量较大,很不方便。并且像有些软件我们也没有注意到有应用升级就实现了图标替换,很神奇吧,在日常生活中我们定制化10.0的项目开发中,在Launcher3的app列表页,有时钟app的图标,图标是静态的但是有时开发的需要要求调成动态图标,时刻显示时间,这时就要把时钟图标替换成动态图标。


主要核心代码:

packages/apps/Launcher3/src/com/android/launcher3/BubbleTextView.java
packages/apps/Launcher3/src/com/android/launcher3/Launcher.java

在开发过程中会经常遇见时钟图标是静止的,这是图标就不能充分的体现出当前时刻,所以这是错误的,需要想办法去修改:


1 定义绘制时间图标类IconUtil.java


2 计算当前时间工具类 DateUtils.java


3 时钟工具类DeskClockUtil.java


4.BubbleTextView.java中设置动态图标


功能实现代码:

private void applyIconAndLabel(ItemInfoWithIcon info) {
String pkgname = "";
if (info.getIntent() != null && info.getIntent().getComponent() != null) {
pkgname = info.getIntent().getComponent().getPackageName();
}
android.util.Log.e("Launcher3","pkgname:"+pkgname);
FastBitmapDrawable iconDrawable = null;
if(pkgname.equals("com.android.deskclock")){
DeskClockUtil.getInstance().setListener(new DeskClockUtil.OnDeskClockIconChangeListener() {
@Override
public void onChange(Bitmap icon) {
FastBitmapDrawable deskiconDrawable = new FastBitmapDrawable(icon);
android.util.Log.e("Launcher3","deskiconDrawable:"+deskiconDrawable+"--icon:"+icon);
if(deskiconDrawable!=null)setIcon(deskiconDrawable);
}
}, getContext());
}else{
iconDrawable = DrawableFactory.INSTANCE.get(getContext())
.newIcon(getContext(), info);
}
//FastBitmapDrawable iconDrawable = DrawableFactory.INSTANCE.get(getContext())
//.newIcon(getContext(), info);
mDotParams.color = IconPalette.getMutedColor(info.iconColor, 0.54f);
    if(iconDrawable!=null)setIcon(iconDrawable);
    setText(info.title);
    if (info.contentDescription != null) {
        setContentDescription(info.isDisabled()
                ? getContext().getString(R.string.disabled_app_label, info.contentDescription)
                : info.contentDescription);
    }
}

学习收获;

加油,学完这些已经提升了很多,不过以后要坚持,珍惜CSDN的这个打卡活动,去努力的多学习相关自己感兴趣的知识,通过这个平台去不断的提升自己,这样才能在以后的工作中脱颖而出。

相关文章
|
7月前
|
数据可视化 数据处理 Swift
Swift开发——简单App设计
SwiftUI教程概述:简化App设计,通过代码展示了如何创建一个计算两个数之和的界面。工程`MyCh0902`包含`ContentView.swift`,其中定义了`ContentView`和`MyView`结构体。`MyView`负责界面布局,使用`VStack`和`HStack`组织元素,如`TextField`和`Button`。点击`Button`调用`calc`方法处理输入并更新结果。界面设计可在Xcode的Inspector窗口中可视化配置。推荐将界面逻辑移到单独的`MyView.swift`文件中以清晰分离视图设计。
265 1
Swift开发——简单App设计
|
Android开发
快应用安卓机进行真机调试(详细流程)
快应用安卓机进行真机调试(详细流程)
193 0
|
JavaScript Go CDN
君子不玩物丧志,亦常以借物调心,网站集成二次元网页小组件(widget)石蒜模拟器,聊以赏玩
传世经典《菜根谭》中有言曰:“徜徉于山林泉石之间,而尘心渐息;夷犹于诗书图画之内,而俗气潜消。故君子虽不玩物丧志,亦常借物调心。”意思是,徜徉在林泉山石之间,能够摒弃杂念,留意诗词歌画之中,可以尽弃俗见。所以说君子虽然不会玩物丧志,也常常要借一些优雅的小物件来调理情绪,二次元网页小组件(widget)就是这样的小物件,功能上无甚大观,却可以博君一晒。
君子不玩物丧志,亦常以借物调心,网站集成二次元网页小组件(widget)石蒜模拟器,聊以赏玩
|
Web App开发 JavaScript IDE
iPhone 14 Pro 渲染图曝光;​程序员编码抢挂疫苗号牟利 40 万;Chrome 102 发布 | 思否周刊
iPhone 14 Pro 渲染图曝光;​程序员编码抢挂疫苗号牟利 40 万;Chrome 102 发布 | 思否周刊
186 0
iPhone 14 Pro 渲染图曝光;​程序员编码抢挂疫苗号牟利 40 万;Chrome 102 发布 | 思否周刊
|
Android开发
21天打卡Andoid学到的一些小知识-第十一十二天
今天我们学习打卡的内容是:Android 10.0 Launcher3 禁止首屏时钟AppWidget拖动到其他屏这个知识。
105 0
|
Java Android开发
21天打卡Andoid学到的一些小知识-第十七十八天
今天我们学习打卡的内容是:Android 10.0 屏蔽掉 SystemUI 的通知提示音
82 0
|
Android开发
21天打卡Andoid学到的一些小知识-第十五十六天
学习的最大理由是想摆脱平庸 今天我们学习打卡的内容是:Android 10.0 app获取不到序列号解决方案
117 0
|
开发者
小视频APP源码开发者对小视频平台的三个忠告
作为一个小视频APP开发人员,向各位想要开发短视频APP的朋友们提出几点忠告
|
Android开发
重拾安卓_00_资源帖
一、精选资源 1.androiddevtools 2.Android官方培训课程中文版(v0.9.7)   二、参考教程 1.Android开发教程完全 2.菜鸟教程-安卓 2.极客学院安卓wiki
804 0
|
前端开发 JavaScript
电影院插件
  之前写了一个关于电影院订票的小小笔记。http://www.cnblogs.com/adouwt/p/7860337.html  ,    订票系统  http://ticket.scampus.cn/cinema/5a49d0c6fe136c070428d7ed    这里涉及到了前端和后端的知识。
1072 0