- 浏览: 106056 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
bcf102:
~~~~
Android检测耳机当前状态 -
itwangxinli:
reader未关闭
Android检测耳机当前状态 -
bcf102:
smilecatflowers 写道 额,楼主这个貌似是三棱锥 ...
Android OpenGL ES画四棱椎,贴图 -
smilecatflowers:
额,楼主这个貌似是三棱锥的说。。。
Android OpenGL ES画四棱椎,贴图
Android主界面的应用程序图标风格迥异,为了使用户看上去感觉比较统一,决定对其图标进行设置统一背景。
在ApplicationPackageManager.java里有个public Drawable getDrawable(String packageName, int resid,ApplicationInfo appInfo) 的方法用于返回应用的图标。所以,我们可以在解析完成并在它被放入到缓存cache里面前,就对图标进行处理,使之成为我们想要的效果。
//icon:获取的应用程序图标 idImg:想要添加的背景view id
private Drawable buildTrayForIcon(Drawable icon, int idImg){
Resources res = this.getResources();
BitmapDrawable bd = new BitmapDrawable(buildTrayForIcon(icon, BitmapFactory.decodeResource(res, idImg)));
bd.setTargetDensity(res.getDisplayMetrics());
return bd;
}
private Bitmap buildTrayForIcon(Drawable icon, Bitmap background){
if(icon == null){
return null;
}
final int backgroundWith = background.getWidth();
final int backgrouncHeight = background.getHeight();
int sourceWidth = icon.getIntrinsicWidth();
int sourceHeight = icon.getIntrinsicHeight();
/**
* 这里需要做的工作是:如何确保原图会在要加上图的中间
* 如果原图比背景图要大的话就会使原图画不出来。所以这时候
* 给出了一个固定的大小值来限定,right-left小于原图的宽,
* 或者bottom-top小于原图的高 将原图进行缩放
*/
int left = (backgroundWith - sourceWidth) / 2;
int top = (backgrouncHeight - sourceHeight) / 2 ;
int right=left+sourceWidth;
int bottom=top+sourceHeight;
if(left<0 ){
left=0;
left+=15;//这些值可以自己进行看情况设置,我这只是一个测试版
right=backgroundWith-15;
}
if(top<0){
top=0;
top+=15;
bottom=backgrouncHeight-15;
}
Bitmap compoundBitmap = null;
compoundBitmap = Bitmap.createBitmap(backgroundWith, backgrouncHeight, Config.ARGB_8888);
//Drawable d=new Drawable(compoundBitmap);
//Drawable drawable = new BitmapDrawable(compoundBitmap);
Canvas canvas = new Canvas(compoundBitmap);
canvas.drawBitmap(background, 0, 0, null);
//Rect r=drawable.getBounds();
//sOldBounds.set(icon.getBounds().left,);
//icon.setBounds(left, top, left+width, top+height);
icon.setBounds(left, top, right, bottom);
icon.draw(canvas);
//icon.setBounds(sOldBounds);
return compoundBitmap;
}
这样处理之后就能达到我们的效果了。
在ApplicationPackageManager.java里有个public Drawable getDrawable(String packageName, int resid,ApplicationInfo appInfo) 的方法用于返回应用的图标。所以,我们可以在解析完成并在它被放入到缓存cache里面前,就对图标进行处理,使之成为我们想要的效果。
//icon:获取的应用程序图标 idImg:想要添加的背景view id
private Drawable buildTrayForIcon(Drawable icon, int idImg){
Resources res = this.getResources();
BitmapDrawable bd = new BitmapDrawable(buildTrayForIcon(icon, BitmapFactory.decodeResource(res, idImg)));
bd.setTargetDensity(res.getDisplayMetrics());
return bd;
}
private Bitmap buildTrayForIcon(Drawable icon, Bitmap background){
if(icon == null){
return null;
}
final int backgroundWith = background.getWidth();
final int backgrouncHeight = background.getHeight();
int sourceWidth = icon.getIntrinsicWidth();
int sourceHeight = icon.getIntrinsicHeight();
/**
* 这里需要做的工作是:如何确保原图会在要加上图的中间
* 如果原图比背景图要大的话就会使原图画不出来。所以这时候
* 给出了一个固定的大小值来限定,right-left小于原图的宽,
* 或者bottom-top小于原图的高 将原图进行缩放
*/
int left = (backgroundWith - sourceWidth) / 2;
int top = (backgrouncHeight - sourceHeight) / 2 ;
int right=left+sourceWidth;
int bottom=top+sourceHeight;
if(left<0 ){
left=0;
left+=15;//这些值可以自己进行看情况设置,我这只是一个测试版
right=backgroundWith-15;
}
if(top<0){
top=0;
top+=15;
bottom=backgrouncHeight-15;
}
Bitmap compoundBitmap = null;
compoundBitmap = Bitmap.createBitmap(backgroundWith, backgrouncHeight, Config.ARGB_8888);
//Drawable d=new Drawable(compoundBitmap);
//Drawable drawable = new BitmapDrawable(compoundBitmap);
Canvas canvas = new Canvas(compoundBitmap);
canvas.drawBitmap(background, 0, 0, null);
//Rect r=drawable.getBounds();
//sOldBounds.set(icon.getBounds().left,);
//icon.setBounds(left, top, left+width, top+height);
icon.setBounds(left, top, right, bottom);
icon.draw(canvas);
//icon.setBounds(sOldBounds);
return compoundBitmap;
}
这样处理之后就能达到我们的效果了。
发表评论
-
Android5.0以上系统自动接电话的实现
2016-04-17 11:10 1057最近在做自动接听电话的功能,在网上查了很多,4.4.2的系统 ... -
Android图片下载缓存库picasso解析
2014-09-30 11:04 1789picasso是Square公司开源的一个Android图形 ... -
Android setting各子页面地址
2014-03-24 10:25 803Android软件时,常常需要打开系统设置或信息界面,来设置相 ... -
如何得到优酷网mp4格式视频文件url
2013-09-05 22:30 3241前言 众所周知,视频在网页中使用FLV格式是最常用和方便 ... -
AndroidSAX解析错误,内容获取不完整
2013-08-29 22:35 875转载:http://blog.csdn.net/feng88 ... -
用ViewGroup实现多View自动换行的功能
2013-08-24 22:58 901public class PredicateLayout ... -
Android使用File创建临时文件,File.createTempFile
2013-08-17 11:49 4080废话不多说,直接上代码 File files = ... -
android应用创建快捷方式
2013-08-15 08:29 757android应用创建快捷方式,包名写自己的 Int ... -
MatrixCursor和MergeCursor
2013-07-15 13:53 10131、MatrixCursor创建记录 ContentPr ... -
android屏蔽home键
2013-07-05 08:44 746@Override public boolean onK ... -
Android Service被关闭后自动重启,解决被异常kill 服务
2013-06-18 22:32 5993每次调用startService(Intent)的时候,都会 ... -
Android网络通信的六种方式示例代码
2013-06-18 10:57 969手机作 ... -
android通过http访问mysql或者sqlserver,oracle数据库
2013-05-14 16:50 1001表单提交中get和post方式的区别有5点1.get是从服 ... -
Android中SQLite应用详解
2013-05-14 11:24 821现在的主流移动设备像Android、iPhone等都使用SQ ... -
SQLite的升级
2013-05-14 10:46 681SQLite的升级 做Android应用,不可避免的会 ... -
Android系统启动过程
2013-05-06 16:21 1411一、开机加电 bootloader(汇编语言)进行底 ... -
android4.0虚拟按键
2013-04-07 15:54 828我们公司手机依然还是支持硬件按键,但是android4.0 ... -
Android动态加载jar/dex
2013-03-18 17:31 883Android动态加载jar/dex 前言 在目前 ... -
探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法
2013-03-18 13:51 974前言 相信这样一个问题,大家都不会陌生, “有什么 ... -
getWritableDatabase()和getReadableDatabase()的区别
2013-03-14 11:32 1918getReadableDatabase()并不是以只读方式打开 ...
相关推荐
本文将围绕"android4.0 Launcher2"这一主题,深入探讨其关键知识点。 一、Launcher2概述 Launcher2是在Android 4.0系统中默认的启动器,负责管理应用程序的快捷方式和小部件。它是一个基于组件的系统服务,运行在...
在Android 4.0(Ice Cream Sandwich)系统中,"Launcher"是主界面的核心组件,它负责呈现桌面、快捷方式和应用抽屉等用户交互界面。深入理解Launcher的源码对于Android开发者来说至关重要,因为这有助于优化用户体验,...
- Android 4.0 的 Launcher 具有严格的权限管理,例如,只有特定的系统应用才能在主屏幕上添加或移除图标。 通过深入研究 Android 4.0 原生 Launcher 的源码,开发者可以学习到如何处理触摸事件、实现高效的滚动...
当我们谈论“android4.0-launcher可运行源码”时,意味着我们可以直接在Eclipse开发环境中运行这个源代码,这为我们提供了深入理解Android 4.0 Launcher工作原理的机会。这篇内容将详述Android 4.0 Launcher的核心...
Android 4.0 的 Launcher2 是 Android 桌面启动器的一个版本,它负责呈现用户在设备上看到的主屏幕、应用抽屉和其他界面。在这个源代码包中,我们可以深入理解 Android 应用程序框架、UI 设计以及系统级别的交互逻辑...
【Android 4.0 Launcher2 源码 Eclipse版】是一个专门为Android 4.0 (Ice Cream Sandwich)系统设计的启动器源代码,适合开发者深入理解Android系统的桌面启动器工作原理,以及进行自定义开发。这个源代码版本是为...
在Android系统中,Launcher是用户与设备交互的入口,它负责展示桌面图标、应用抽屉以及各种快捷方式,使得用户可以启动不同的应用程序。定制Launcher意味着开发者可以根据自己的需求修改默认的界面布局、添加特色...
"Android 4.0 Launcher2"是Android操作系统的一个核心组件,它是用户与设备交互的主界面,负责显示应用快捷方式、小部件以及桌面布局。在这个源代码中,我们可以深入理解Android系统的桌面启动器是如何实现其功能的...
3. **动态壁纸**:Android 4.0原生Launcher支持动态壁纸,为用户提供更加生动和个性化的桌面背景。这些壁纸不仅美观,还能与用户交互,增强了桌面的趣味性。 4. **主屏幕管理**:用户可以自定义主屏幕的数量,添加...
Android 4.0 Launcher系统源码是Android操作系统中桌面启动器的重要组成部分,它负责管理主屏幕、应用快捷方式、小部件以及桌面布局等用户界面。深入理解这部分源码对于开发者来说,有助于定制个性化启动器或者优化...
在Android系统中,Launcher是用户界面的核心组成部分,它充当了主屏幕和应用程序抽屉的角色,让用户可以启动应用、管理桌面快捷方式以及自定义桌面布局。Android 4.0 Ice Cream Sandwich(简称ICS)对Launcher进行了...
在Launcher中,Activity尤为重要,因为它直接响应用户的交互,展现应用程序的界面。 UI设计是Android Launcher的重要组成部分。Android提供了丰富的UI元素和布局管理器,如LinearLayout、RelativeLayout、...
Android 4.0(Ice Cream Sandwich,简称ICS)是Google推出的一个重要版本,其Launcher作为用户与系统交互的主界面,扮演着至关重要的角色。Launcher2是该版本中默认的桌面启动器,它的源码提供了深入了解Android系统...
在Android系统中,Launcher是用户界面的核心组成部分,它负责提供主屏幕、应用抽屉和桌面小部件等功能。这里我们关注的是"launcher源码",包括ADW.Launcher和Android 4.0(Ice Cream Sandwich,简称ICS)的原生...
在Android 4.0(Ice Cream Sandwich)系统中,Launcher2是主屏幕应用程序,负责显示桌面图标、小部件以及启动其他应用。它是用户与系统交互的重要界面,因此深入理解其源码对于Android开发者来说至关重要。以下是对...
Android 4.0 的 Launcher2 是 Android 操作系统中的主屏幕应用,负责显示桌面图标、小部件和其他可启动的应用程序。源码分析可以帮助开发者深入理解其工作原理,从而进行自定义开发或性能优化。以下是对 Android 4.0...
【Android 2.3 仿 4.0 Launcher】是一个针对Android 2.3 Gingerbread系统设计的桌面启动器,其目标是模仿Android 4.0 Ice Cream Sandwich的用户界面和功能。在Android 2.3系统上使用这个启动器,用户可以获得与...
在Android操作系统中,Launcher是用户界面的核心部分,它作为系统的桌面,提供应用程序的快捷方式、小部件以及主屏幕管理功能。Launcher2是Android 4.0(ICS,Ice Cream Sandwich)时期的默认启动器,它的源代码对于...
在Android 2.3系统中,可以通过自定义Launcher应用来控制应用程序图标是否显示在桌面或主菜单中。这一操作对于定制化系统界面、提升用户体验等方面具有重要意义。尽管在Android 4.0系统中与2.3版本有所不同,但核心...
Android Launcher是操作系统的核心组件之一,它负责为用户提供桌面界面,展示应用快捷方式和小部件,以及管理设备的主屏幕。Android 4.0(Ice Cream Sandwich)版本的Launcher在设计和功能上进行了显著改进,以提供...