安卓机器人图标系统的通知栏图标前后顺序如何更改?

改变AIR for Android的消息通知栏图标 - 推酷
改变AIR for Android的消息通知栏图标
本站文章除注明转载外,均为本站原创或者翻译。
本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商;
本站部分原创和翻译文章提供markdown格式源码,欢迎使用
进行转载;
本文标题:改变AIR for Android的消息通知栏图标
本文链接:
如果从愤怒的角度来说,这个勉强可以算作AIR的BUG,但我知道不是。估计这事儿也只有我能碰上。且听我细细道来……
show notification in Android
在Android中显示消息通知,是个很简单的事情,见下面的代码:
Intent __activityIntent = _context.getPackageManager().getLaunchIntentForPackage(_setting.getPackageName());
if(__activityIntent == null) throw new (&无法获取到名称为【&+_setting.getPackageName()+&】的Intent!&);
Notification __msg = new Notification(R.drawable.ic_launcher, $ticket, .currentTimeMillis());
ApplicationInfo __info = _context.getApplicationInfo();
__activityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent __intent = PendingIntent.getActivity(_context, getRequestCode(), __activityIntent, PendingIntent.FLAG_UPDATE_CURRENT);
__msg.ledARGB = $color;
__msg.ledOnMS = 300;
__msg.ledOffMS = 1000;
__msg.flags |= Notification.FLAG_SHOW_LIGHTS;
__msg.flags |= Notification.FLAG_AUTO_CANCEL;
__msg.defaults |= Notification.DEFAULT_SOUND;
__msg.setLatestEventInfo(_context, $title, $msg, __intent);
NotificationManager __nm = (NotificationManager) _context.getSystemService(.NOTIFICATION_SERVICE);
__nm.notify(0, __msg);
上面的代码基于Android 2.2,Android 3.0以后有更好的方法,google也不推荐使用这样的方法。但我们为了兼容旧设备,只能这么用。
将这段代码编译后打包成ANE,在AS中调用,在Android设备中调试运行,就可以弹出一个通知栏,显示的图标是AIR的程序配置文件中配置的图标。
想要知道如何打包ANE,可以参考
但是本文讲的不是这么简单的东西,本文讲的是一个相当纠结的问题。
这个方法在我的设备中一直运行得很好,直到有一天,当我要发布它的时候,出问题了。
显示在Notification bar区域的图标,变成了AIR的红色图标,而不是我的应用的图标了。就像下面这样:
而我的应用的图标,原本是这样的:
这个问题让我百思不得其解,为什么在调试的时候正常,在正式的发布版之后就不正常了么?郁闷的寻找了一段时间之后,一个偶然的机会让我发现了该问题的原因。
我们知道,AIR在打包成Android apk文件的时候,可以选择AIR运行时的处理方式。我们可以选择“共享AIR运行时(apk)”和“运行时绑定(apk-captive-runtime)”两种方式。
在调试的时候,Flash Builder会直接将apk打包成共享AIR运行时版本。而在发布的时候,我们一般都会选择运行时绑定。至于原因,你懂的。
而这两种运行时打包方式对于图标的处理方式是不一样的。我解压了同一个项目的“共享运行时”和“运行时绑定”apk文件,发现他们的
res/drawable
目录中的图像文件不同。在“共享运行时”的apk文件中,该目录只有一个alert形式的半透明图标,而“运行时绑定”的apk文件中,则多出了一个AIR的默认图标。
看完这张图,出现AIR默认图标的原因已经找到了,下面是分析。
问题的分析
由于应用需要支持多种分辨率,Notification bar的图标并不是使用一个图标文件来指定的,而是使用一个编号。也就是上面代码中的
R.drawable.ic_launcher
。这是一个int类型的值。
在ANE的代码中指定的这个常量,其实和AIR项目并没有什么关系,ANE项目是没有界面的,所使用的资源与AIR项目的资源也完全不同。将ANE打包到AIR项目中之后,就会改用AIR项目的资源。
但为什么在ANE中指定的图标编号值,在AIR项目中依然有作用呢(仅限“共享AIR运行时”)?
为了弄清这个问题,我创建了一个原生的Android项目。我发现默认情况下,它使用的图标也指向
R.drawable.ic_launcher
,而且这个常量的值与ANE项目中的值完全相同,都是
0x7f020000
我可以这样认为,这是Android项目的默认程序图标常量值。既然是这样,那么AIR也会遵循这个常量值。因此,在ANE中指定的图标常量值正好和AIR中的图标常量值相同,这是个“正确的巧合”。
在“共享AIR运行时”的时候,因为apk的
res/drawable
目录中没有其他的系统图标,Notification会自动去
res/drawable-hdpi;res/drawable-res/drawable-mdpi
3个图标文件夹下寻找匹配的图标。这3个文件夹中保存的就是我们在AIR程序配置文件中指定的程序图标。
在“运行时绑定”的APK文件中,由于AIR添加了一个默认图标,Notification显示的时候就直接中又直接调用了
res/drawable
中的这个图标,因此显示的就是默认图标了。
有了上面的分析,我只要在指定Notification图标的时候,指定一个图标资源的对应常量值,就能够得到正确的图标了。但可惜的是,除了我自己要求AIR包含的文件外,我并不知道AIR在打包的时候将哪些图标文件放在了APK包中,也不知道它们的常量是什么。
在使用Android SDK开发的应用中,这些常量都在SDK自动生成的R类中,我很容易得到他们。但AIR并没有告诉我怎么得到这些资源。
看来我只能自己想办法。
我发现,Android SDK自动生成的R.java文件中的常量值是有规律的,比如
资源都已0x7f07
开头,然后就是从
0000`开始顺号排列。如下所示:
public final class R {
public static final class attr {
public static final class drawable {
public static final int ic_action_search=0x7f020000;
public static final int ic_launcher=0x7f020001;
public static final class id {
public static final int menu_settings=0x7f070002;
public static final int textView1=0x7f070000;
public static final int toggleButton1=0x7f070001;
public static final class layout {
public static final int activity_main=0x7f030000;
public static final class menu {
public static final int activity_main=0x7f060000;
public static final class string {
public static final int app_name=0x7f040000;
public static final int hello_world=0x7f040001;
public static final int menu_settings=0x7f040002;
public static final int title_activity_main=0x7f040003;
public static final class style {
public static final int AppTheme=0x7f050000;
我可以这样认为,
0x7f020000
就是第一个图标文件的常量值,而第二个图标文件应该是
0x7f020001
,第三个是
0x7f020002
,第四个……唔,没有第四个,如果使用
0x7f020003
,AIR会直接崩溃退出。
测试证明,我的猜想是正确的。至此问题解决。
和Adobe打交道这么多年,已经被无数的BUG折磨得“百度不亲”。Flex的BUG因为有源码,可以自己动手解决。而
。现在做AIR for mobile开发也有一段时间了,
,忍受了ipa那乌龟一般的编译速度和iTunes那烂到无敌的用户体验,最后在这个不是BUG的问题上纠结了2天时间,彻底无语了……
从Adobe的角度看,在自己的产品中保留一个自己的默认图标,好像也无可厚非。从我的角度看,既然选择用AIR技术,碰到这样的问题,只能怪我手贱。
AIR for mobile给我的感觉,就像是一个保险箱,在我往里面放东西的时候,非常顺手。但我要修理它的时候,却发现我没有工具、没有手册、也没有指导。
当然,个人能力有限,也许我对Android更加了解之后,这个问题根本就不是问题了。
有哪位Android专家能给点建议么?
已发表评论数()
&&登&&&录&&
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见安卓系统左上角的通知栏图标前后顺序如何更改_海信t96吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:3,331贴子:
安卓系统左上角的通知栏图标前后顺序如何更改收藏
RT安卓系统左上角的通知栏图标前后顺序如何更改为什么有时候这个图标会自己变动顺序?本来我的360手机卫士是排第一位,有的时候自己跑到第二位去了!囧
求解决!!原来腾讯管家总在第一个位置 图标多了就泡后面去了 用着感觉很不好 求高手解决!
关闭一次服务试一试
求高手解决
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或您还未登陆,请登录后操作!
系统如何设置短信内容不在桌面上显示..?
设置里面有个在通知栏不显示图标呢你试试
您的举报已经提交成功,我们将尽快处理,谢谢!
亲,看到手机设置,在里面找到隐私,然后可以看到不把短信显示在桌面。仅供参考,希望可以帮到亲。
大家还关注lbe通知栏图标美化,已更新素材,自己动手更快乐……
本帖最后由 取名字伤脑子 于 日 09:46 编辑
个人觉得lbe的图标好难看,一气之下把它给换了
看截图,那片绿叶就是lbe的图标
此为最新版4.0版本,谁有好看的图标给我个,找不到其它图标,只能用绿叶代替了,还行吧
更新素材,下载附件,自己替换,通知拦图标是icon.png
替换很简单的,改后缀zip解压,替换图标,打包,改后缀apk,还需要签名,下个apk签名工具签名,就可以了
(364.18 KB, 下载次数: 468)
日 08:26 上传
(48.84 KB, 下载次数: 136)
日 09:44 上传
日 08:30 上传
点击文件名下载附件
2.54 MB, 下载次数: 217
日 09:43 上传
点击文件名下载附件
119.62 KB, 下载次数: 367
该帖共收到 70 条回复!
发表于 日 08:41
好吧没什么感觉。。
发表于 日 08:43
不错,我还在用老版本的
发表于 日 08:44
RE: lbe通知栏图标美化,觉得lbe的图标难看吗?难看就换了它吧,亲~
degejin 发表于 日 08:41
好吧没什么感觉。。
中午放出一个更好看的,你会有感觉的
发表于 日 08:52
本帖最后由 惆怅旧欢如梦 于 日 08:52 编辑
取名字伤脑子 发表于 日 08:44
中午放出一个更好看的,你会有感觉的
楼主能不能改下3.7.2164这个版本的图标,个人不喜欢新版的界面
或者你告诉我方法,我自己替换
发表于 日 08:56
再用LBe授权管理,新版用着不爽。
发表于 日 08:59
RE: lbe通知栏图标美化,觉得lbe的图标难看吗?难看就换了它吧,亲~
惆怅旧欢如梦 发表于 日 08:52
楼主能不能改下3.7.2164这个版本的图标,个人不喜欢新版的界面
或者你告诉我方法,我自己替换
3.7那个占用运存如何?有自启动官家吗???
替换很简单的,改后缀zip解压,替换图标,打包,改后缀apk,可能还需要签名,下个apk签名工具签名,就可以了
发表于 日 09:00
取名字伤脑子 发表于 日 08:59
3.7那个占用运存如何?有自启动官家吗???
替换很简单的,改后缀zip解压,替换图标,打包,改后缀apk, ...
12MB左右,有自启管家,其实4.0和3.7.2164功能都差不多的,界面变化了而已
这么麻烦,还要签名
发表于 日 09:03
RE: lbe通知栏图标美化,觉得lbe的图标难看吗?难看就换了它吧,亲~
惆怅旧欢如梦 发表于 日 09:00
12MB左右,有自启管家,其实4.0和3.7.2164功能都差不多的,界面变化了而已
这么麻烦,还要签名
没特殊情况,不用签名,或者你可以放进系统目录,
发表于 日 09:18
好吧。。。那片叶子不是一个叫app什么的任务管理器的图标吗?
不知道是我审美观问题什么的。。。我觉得那叶子丑到爆。。。
另外换图标不是换下/res/drawable-h/icon-small.png就可以了么?
发表于 日 09:20
取名字伤脑子 发表于 日 09:03
没特殊情况,不用签名,或者你可以放进系统目录,
楼主能否提供些图片
发表于 日 09:32
RE: lbe通知栏图标美化,觉得lbe的图标难看吗?难看就换了它吧,亲~
寒月萱 发表于 日 09:18
好吧。。。那片叶子不是一个叫app什么的任务管理器的图标吗?
不知道是我审美观问题什么的。。。我觉得那叶 ...
是icon.png
发表于 日 09:32
RE: lbe通知栏图标美化,觉得lbe的图标难看吗?难看就换了它吧,亲~
惆怅旧欢如梦 发表于 日 09:20
楼主能否提供些图片
发表于 日 09:35
RE: lbe通知栏图标美化,觉得lbe的图标难看吗?难看就换了它吧,亲~
取名字伤脑子 发表于 日 09:32
是icon.png
应该吧。。。icon.png不是把启动器图标也改了吗?
发表于 日 09:38
还是原装货好﹌
GMT+8, 日 02:30

我要回帖

更多关于 安卓app图标尺寸 的文章

 

随机推荐