修改android启动logo动态图片静态图片.docx
- 文档编号:8719549
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:5
- 大小:1.66MB
修改android启动logo动态图片静态图片.docx
《修改android启动logo动态图片静态图片.docx》由会员分享,可在线阅读,更多相关《修改android启动logo动态图片静态图片.docx(5页珍藏版)》请在冰豆网上搜索。
修改android启动logo动态图片静态图片
修改和制作Android开机Logo(完整版)之答禄夫天创作
日期:
2012-02-15作者:
zhh
logo.h的制作:
准备一张图片,然后用Img2Lcd工具把图片转成C语言数组
注意:
在使用Img2Lcd工具转换的图片最左边会有一条白边,把数组中前8个数值删除就不会有这样的情况。
2.kernel图片(linuxlogo)原来是没有的,需要先在menuconfig中加入配置DeviceDriver---Graphicsupport---BootupLogo中选中224color
然后把自己的LOGO(png-8格式)转换成ppm格式,替换这个文件,同时删除logo_linux_clut224.clogo_linux_clut224.o文件,重新编译。
(/drivers/video/logo/logo_linux_clut224.ppm是默认的启动LOGO图片格式为ppm)
ppm图片的生成:
#pnmquant224logo_linux_clut224.pnm>logo_linux_clut224.pnm(如果执行出错,可以省略)
注意:
使用pngtopnm,pnmquant,pnmtoplainpnm工具前要先装置,在虚拟机下sudoapt-getinstallnetpbm这三个工具会装置好。
设置图片居中显示:
/*modifiedbycreatory*/
//image.dx=0;
//image.dy=y;
image.dx=(info->var.xres/2)-(logo->width/2);
image.dy=(info->var.yres/2)-(logo->height/2);
logo_height=fb_prepare_logo(info,ops->rotate);
下面加入
logo_height+=(info->var.yres/2)-(logo_height/2);
第三张图片:
这张图片是水果的图片加入的logo图片,制作和修改方法如下:
1).制作当前屏幕像素的图片(模拟器默认为1024*768)
使用PS制作一张1024*168的图片,保管时选“保管为Web所用格式”,然后在弹开的窗口上,“预设”项选择“PNG-24”,保管为android_logo.png(
注:
好像只支持png-24,其他格式生成的rle文件显示不正常,有兴趣大家可以再验证一下。
2).将图片转换为raw格式
使用linux下的ImageMagick自带的convert命令,进行raw格式转换,命令为:
注:
ubuntu10.04默认已经装置ImgageMagick工具,如果当前系统没有装置,可以执行下面的命令装置:
sudoapt-getinstallimagemagick
3).将raw格式转化为rle文件
需要用到android编译后的rgb2565工具,在android/out/host/linux-x86/bin目录下(android为当前源码所在目录),转换命令如下:
4).
修改:
tcc8923_20120127/device/telechips/m805_892x/device.mk
添加下面一行:
PRODUCT_COPY_FILES+=\
5、替换文件device\telechips\common\initlogo.rle;
同时删除out\target\product\tcc8900\ramdisk.img,ramdisk-recovery.img,再重新编译,就可以了
第二种方法:
到目前为止,启动需要显示的图像已经做好了,就是initlogo.rle,注意文件名必须是这个,如果想改文件名,需要修改
android/system/core/init/init.h中的宏:
#defineINIT_IMAGE_FILE"/initlogo.rle"
============================================================================================
以下的4,5,6,7,需要先进行如下设置,把initlogo.rle放入device\telechips\common\,删除ramdisk.img之类的相关的文件重新make即可。
4).找到ramdisk.img文件(android/out/target/product/generic/ramdisk.img),将文件名改为ramdisk.img.gz,然后使用下面的命令解压:
解压后得到ramdisk.img,可能有人要问,怎么文件名又改回去了?
其实否则,使用fileramdisk.img检查一下就知道了:
解压前:
ramdisk.img:
gzipcompresseddata,fromUnix
解压后:
ramdisk.img:
ASCIIcpioarchive(SVR4withnoCRC)
跑题了,还是说正事儿。
5).使用cpio提取文件:
新建一个temp目录:
mkdirtemp
cdtemp
6).导出文件列表:
cpio-i-t-F../ramdisk.img>list
注:
list是一个文本文件,里面存储了ramdisk.img的文件结构,我们需要在这个文件中加入initlogo.rle这一行,修改后的文件如下
data
dev
init
proc
sbin
sbin/adbd
sys
system
cpio-o-Hnewc-Oramdisk.img 8).用ramdisk.img覆盖sdk目录下的ramdisk.img(android-sdk-windows/platforms/android-2.1/images/ramdisk.img),最好先备份一下。 二、开机动画(闪动的ANDROID字样的动画图片) Android的系统登录动画类似于Windows系统的滚动条,是由前景和布景两张PNG图片组成,这两张图片存在于/system/framework/framework-res.apk文件当中。 前景图片(android-logo-mask.png)上的Android文字部分镂空,布景图片(android-logo-shine.png)则是简单的纹理。 系统登录时,前景图片在最上层显示,程序代码控制布景图片连续滚动,透过前景图片文字镂空部分滚动显示布景纹理,从而实现动画效果。 相关代码: Android默认的前景图片,文字部分镂空,大小256×64 Android默认的布景图片,有动感效果,大小512×64 二、开机文字("ANDRIOD") Android系统启动后,init.c中main()调用load_565rle_image()函数读取/initlogo.rle(一张565rle压缩的位图),如果读取成功,则在/dev/graphics/fb0显示Logo图片;如果读取失败,则将/dev/tty0设为TEXT模式,并打开/dev/tty0,输出文本“ANDRIOD”字样。 定义加载图片文件名称 #defineINIT_IMAGE_FILE"/initlogo.rle" intload_565rle_image(char*file_name); #endif init.c中main()加载/initlogo.rle文件。 if(load_565rle_image(INIT_IMAGE_FILE)){//加载initlogo.rle文件 fd=open("/dev/tty0",O_WRONLY);//将/dev/tty0设为text模式 if(fd>=0){ constchar*msg; msg="\n" "\n" "\n" "\n" "\n" "\n" "\n" //consoleis40colsx30lines "\n" "\n" "\n" "\n" "\n" "\n" "\n" " ANDROID"; write(fd,msg,strlen(msg)); close(fd); } } 相关代码: /system/core/init/init.c /system/core/init/init.h /system/core/init/init.rc /system/core/init/logo.c *.rle文件的制作步调: a.使用GIMP或者AdvancedBatchConverter软件,将图象转换为RAW格式; b.使用android自带的rgb2565工具,将RAW格式文件转换为RLE格式(如: rgb2565-rle
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 修改 android 启动 logo 动态 图片 静态