- 博客(230)
- 资源 (14)
- 收藏
- 关注
原创 Android 图标上面添加提醒(二)使用开源UI类库 Viewbadger
上一篇讲到用canvas进行绘制得到对应最终的bitmap. 在实际应用中,我们除了给图标添加数字外,也有可能加一些红色方块之类的图标作为新功能的提醒.那么有没有什么方法,很方便地给图标添加提醒icon或者数字呢? 有的,还是得借助于开源项目ViewBadger,这个是github上的地址:https://github.com/jgilfelt/android-viewbadger
2013-08-21 11:25:59 24183 9
原创 Android 图标上面添加提醒(一)使用Canvas绘制
Android android图标上面添加数字(一)使用Canvas 在我们开发一些如通讯录、社交等应用或者应用添加新功能模块时,会考虑在对应的图标上加上未读信息的数量,或者是新功能提醒的图标,这样不占太大空间还能达到提示的目的. 之前在MMS分析部分,也有人问过我这种提醒的实现. 关于这种提醒的添加,我总结了下,有大概几种方法可以实现:
2013-08-21 09:02:09 8450
翻译 Android硬件加速
Android从3.0(API Level 11)开始,在绘制View的时候支持硬件加速,充分利用GPU的特性,使得绘制更加平滑,但是会多消耗一些内存。开启或关闭硬件加速: 由于硬件加速自身并非完美无缺,所以Android提供选项来打开或者关闭硬件加速,默认是关闭。可以在4个级别上打开或者关闭硬件加速:
2013-08-09 10:04:09 4391
原创 Android 天气预报图文字幕垂直滚动效果
在很多天气或者新闻的应用中,我们都能看到一些字幕滚动的效果,最简单的实现为跑马灯效果,用系统提供的属性即可实现. 复杂一些的就需要自己去用自定义控件实现. 比如 让TextView 实现垂直滚动. 这里我要讲的是垂直滚动的字幕效果,并且内容并不仅为文字,还可以加入图片或者其他元素
2013-08-06 08:43:54 9394 4
原创 Android 仿网易新闻v3.5:上下滑动的引导页
最近看了下网易新闻月初发布的3.5版,发现两个比较明显的改动: 1.引导页的修改,变为上下滑动. 2.增加了聚合阅读,里面的动画效果也是蛮有创意的.于是又禁不住模仿一下这次先看这个上下滑动的引导页效果图:这种效果具体怎么做呢?首先直接上github,直接看有没有相关的开源项目,果不其然,被我找到了:https://github
2013-07-22 08:50:48 30204 40
原创 Android WebView加载Html右边空白问题的解决方案
Android WebView右边空白问题的解决方案用WebView显示Html时,右边会出现一条空白区,如下图所示:
2013-07-21 12:46:49 11174 1
原创 Android 短信模块分析(八) MMS数据库表关系
表关系mmssms.db数据库中关键表的关系如图1.9所示,其中各表只是列出了主键和外键,具体的表定义参见1.7.1小节。simcontacts.db数据库中表的关系如图1.10所示:
2013-07-20 08:23:39 6177 7
原创 Android 短信模块分析(七) MMS数据库定义及结构整理
1.7.1 mmssms.db数据库mmssms.db中表的定义见表4.1至4.18所示:表4.1 addr(彩信地址)字段名类型描述备注_idINTEGER PRIMARY_KEY主键ID系统生成msg_idINTEGER
2013-07-19 09:04:56 15211 1
原创 Android 短信模块分析(六) 接收Wappush信息及彩信附件增加删除
wappush接收的时序图如图1.8所示:彩信附件增加删除彩信附件添加:在ComposeMessageActivity里的addAttachment(int type) 函数 根据type的不同,分成7个case MediaSelectListActivity.ADD_IMAGEMediaSelectListActivity.TAKE_PICTURE
2013-07-19 08:49:56 6246
原创 Android 短信模块分析(五) MMS之彩信的发送与接收
1.4.2彩信发送 彩信比短信麻烦很多。从sendMmsWorker函数的参数就可以看出来:(conv, mmsUri, persister, slideshow, sendReq) 上下文,uri,PduPersister(彩信是用pdu的),slideshow 包含了所有的彩信信息,sendreq包含了mime封装mms时的headers,也包括了from,to等信息 。 1)函数
2013-07-18 09:25:25 10732
原创 Android 短信模块分析(四) MMS之短信的发送与接收
1.4信息发送com.android.mms.data.WorkingMessage.java 类 send()函数: public void send() { ...... if (requiresMms() || addressContainsEmailToMms(conv, msgTxt)) { // 彩信
2013-07-17 09:11:54 13980 4
原创 Android 短信模块分析(三) MMS入口分析
在Mms中最重要的两个activity,一个是conversationList(短信列表) ,另一个就是ComposeMessageActivity(单个对话或者短信)。每个ComposeMessageActivity录属于一个conversation或者不属于任何conversation(无收件人草稿);每个converation由独立的threadId来相互区分。每个converation有一
2013-07-17 08:59:26 8161 1
原创 Android 短信模块分析(二) MMS中四大组件核心功能详解
一. Activity 1、ConversationList 对话列表界面,这是进入应用程序的主界面。它有两个配置属性android:configChanges="orientation|keyboardHidden":在Android系统中,当程序所运行的环境(如:屏幕方向、键盘状态、字体等级,等等 )发生变化后 会导致Activity被重新启动(以适应环境变化 ),然而 Activity
2013-07-16 08:46:52 14447 3
原创 Android 短信模块分析(一) Mms功能概述及源码目录结构分析
一. MMS功能描述: Mms是Multimedia messaging service的缩写,中文是多媒体信息服务。在android系统中,它支持SMS(Short Messaging Service)短信和MMS(Multimedia messaging service)彩信发送和接收;支持接收Wappush,Wappush又叫服务信息或者推入信息,是一种特殊格式的短信;同时还能主动接收B
2013-07-15 20:17:55 17705 6
原创 Android 读取APK签名信息
/** * 从APK中读取签名 * @param file * @return * @throws IOException */ private static List getSignaturesFromApk(File file) throws IOException { List signatures=new Array
2013-07-08 22:27:10 12608 8
原创 Android 之使用LocalBroadcastManager解决BroadcastReceiver安全问题
在Android系统中,BroadcastReceiver的设计初衷就是从全局考虑的,可以方便应用程序和系统、应用程序之间、应用程序内的通信,所以对单个应用程序而言BroadcastReceiver是存在安全性问题的,相应问题及解决如下:a、当应用程序发送某个广播时系统会将发送的Intent与系统中所有注册的BroadcastReceiver的IntentFilter进行匹配,若匹配成功则
2013-07-06 08:42:48 34533 5
翻译 Android 网络通信框架Volley简介(Google IO 2013)
1. 什么是Volley在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,今年的Google I/O 2013上,Volley发布了。Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。这是Volley名称的由来:
2013-07-02 09:15:57 563684 68
原创 Android 保存图片到系统及相关问题的解决方案
在应用的图集中,通常会给用户提供保存图片的功能,让用户可以将自己喜欢的图片保存到系统相册中.这个功能其实很好做,系统提供了现成的API:简单的来说就这一行代码:MediaStore.Images.Media.insertImage(getContentResolver(), mBitmap, "", ""); 这个方法的返回值及为插入图片的路径String url = Me
2013-06-15 00:48:50 17924 6
原创 Android 仿大众点评团购购买条浮动效果
在大众点评团购中,有这样一个效果. 在具体的团购页面中商家图片下有一个购买条,当用户滚动团购详情界面的时候,购买条会停留在界面的最上方. 具体效果如图: 图1 图2大家可以看到,大众点评中,为了突出这个购买条,当向上滚动时,该滚动条会显示在最上面(如图2),而当用户滑动回来的时候,又
2013-06-12 16:27:51 19038 17
原创 Android 仿3g体育门户客户端赛事图标浮出效果
最近在玩3g体育门户客户端的时候,看到这样个效果: 轻触赛事图标,会有一个图标变大浮出的效果.,蛮有意思的.于是就把仿照它做了一个. 这个是原图: 实际上是给图标的触摸事件中添加了一个缩放的动画,代码如下.package com.test;import android.app.Activity;import andro
2013-06-02 14:34:49 5443 1
原创 Android 打开地图并显示指定的经纬度
有的时候,我们需要在自己的应用中获取到经纬度,然后打开别的地图应用并显示该经纬度的当前位置. 前提是手机上已经安装了高德或者百度之类的地图应用. 如果有多个,系统会有一个默认的选择打开提示.下面是具体代码:Uri uri = Uri.parse("geo:38.899533,-77.036476");Intent it = new Intent(Intent.Action_VIEW,ur
2013-06-02 14:08:37 17198 2
原创 Android SERVICE后台服务进程的守护
Service组件在android开发中经常遇到,其经常作为后台服务,需要始终保持运行,负责处理一些必要(见不得人)的任务。而一些安全软件,如360等,会有结束进程的功能,如果不做Service的保持,就会被其杀掉。在早些时候,我们可以通过在1. service中重写onStartCommand方法,这个方法有三个返回值, START_STICKY是service被kill掉后
2013-05-27 22:25:19 67595 42
转载 严苛模式(StrictMode)
Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Google称该特性已经使数百个Android上的Google应用程序受益。那它都做什么呢?它将报告与线程及虚拟机相关的策略违例。一旦检测到策略违例(policy violation),你将获得警告,其包含了一个栈trace显示你的应用在何处发生违例。你可以强制用警告代替崩溃(crash),也可以仅将警告计入日志,让你的
2013-05-02 21:08:53 4445
原创 Android 防止控件被重复点击
在开发中经常会遇到这样的情况,一个按钮点击后会弹出Toast或者Dialog,如果快速重复地点击,则Toast则会重复地出现. 而我们想要的效果是一定时间内的点击只生效一次,或者说这种快速且重复的点击为无效点击.解决的思路如下: 1. 需要定义一个全局变量 lastClickTime, 用来记录最后点击的时间. 2. 每次点击前需要进行判断, 用lastClickTime 和当
2012-11-09 08:51:03 18123 12
原创 高仿优酷Android客户端图片左右滑动(自动切换)
本例是用ViewPager去做的实现,支持自动滑动和手动滑动,不仅优酷网,实际上有很多商城和门户网站都有类似的实现:具体思路:1. 工程中需要添加android-support-v4.jar,才能使用ViewPager控件.2. 图片的自动切换: 可使用Timer或者ScheduledExecutorService,这个有多重方式可以实现. 同时要切换底部的dots(园点
2012-11-08 08:54:59 50714 36
翻译 Android ActionBar详解(三):ActionBar实现切换Tabs标签
实现切换Tabs标签; Activity代码: public class ActionBarTabs extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(
2012-11-04 10:37:38 8708 2
翻译 Android ActionBar详解(二):ActionBar实现Tabs标签以及下拉导航
一.添加标签 Tabs 在ActionBar中实现标签页可以实现android.app.ActionBar.TabListener ,重写onTabSelected、onTabUnselected和onTabReselected方法来关联Fragment。代码如下:private class MyTabListener implements ActionBar.TabList
2012-11-04 10:31:47 24869 1
翻译 Android ActionBar详解(一):ActionBar概述及其创建
在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个重要的内容,Action Bar主要是用于代替传统的标题栏,对于Android平板设备来说屏幕更大它的标题使用Action Bar来设计可以展示更多丰富的内容,方便操控。 Action Bar主要功能包含: 1. 显示选项菜单 2. 提供标签页的切换方式的导航功能,可以切换多个
2012-10-28 10:25:17 11723
翻译 Android Fragment详解(六):Fragement示例
把条目添加到动作栏你的fragment们可以向activity的菜单(按Manu键时出现的东西)添加项,同时也可向动作栏(界面中顶部的那个区域)添加条目,这都需通过实现方法onCreateOptionManu()来完成。你从fragment添加到菜单的任何条目,都会出现在现有菜单项之后。Fragment之后可以通过方法onOptionsItemSelected()来响应自己的菜单项被选择的
2012-10-28 10:09:23 11641 9
翻译 Android Fragment详解(五):Fragment与Activity通讯
与activity通讯尽管fragment的实现是独立于activity的,可以被用于多个activity,但是每个activity所包含的是同一个fragment的不同的实例。Fragment可以调用getActivity()方法很容易的得到它所在的activity的对象,然后就可以查找activity中的控件们(findViewById())。例如:ViewlistView =ge
2012-10-27 21:44:45 97955 11
翻译 Android Fragment详解(四):管理Fragment
要管理fragment们,需使用FragmentManager,要获取它,需在activity中调用方法getFragmentManager()。你可以用FragmentManager来做以上事情:1使用方法findFragmentById()或findFragmentByTag(),获取activity中已存在的fragment们。2使用方法popBackStack()从ac
2012-10-27 21:31:01 33346 2
翻译 Android Fragment详解(三): 实现Fragment的界面
为fragment添加用户界面: Fragment一般作为activity的用户界面的一部分,把它自己的layout嵌入到activity的layout中。 一个 要为fragment提供layout,你必须实现onCreateView()回调方法,然后在这个方法中返回一个View对象,这个对象是fragment的layout的根。 注:如果你的fragment是从L
2012-10-24 08:51:34 20560 1
翻译 Android Fragment详解(二):Fragment创建及其生命周期
Fragments的生命周期 每一个fragments 都有自己的一套生命周期回调方法和处理自己的用户输入事件。 对应生命周期可参考下图:创建片元(Creating a Fragment)To create a fragment, you must create a subclass of Fragment (or an existing subclas
2012-10-23 21:17:39 67033 9
翻译 Android Fragment详解(一):概述
Fragment是activity的界面中的一部分或一种行为。你可以把多个Fragment们组合到一个activity中来创建一个多面界面并且你可以在多个activity中重用一个Fragment。你可以把Fragment认为模块化的一段activity,它具有自己的生命周期,接收它自己的事件,并可以在activity运行时被添加或删除。Fragment不能独立存在,它必须嵌入到activit
2012-10-23 09:19:51 17114 4
原创 自动构建工具Ant深入剖析(四) 使用CVS及自定义任务
使用CVS: CVS任务的主要属性是 cvsRoot,它是对 CVS 库的完整引用,包括连接方法和用户详细信息。 这个参数的格式如下 [:method:][[user][:password]@]hostname[:[port]]/path/to/repository 提取是 CVS 任务的默认操作;其他操作可通过使用command 属性来指定使用自定义任务进行
2012-10-16 21:09:34 2307
原创 自动构建工具Ant深入剖析(三) Ant目标深度详解、使用Ant的各种任务
从命令行运行Ant: 从命令提示符调用 Ant 可以简单得只需键入单独的 ant。如果您这样做,Ant 将使用默认的生成文件;该生成文件中指定的默认目标就是 Ant 尝试要生成的目标。还可以指定许多命令行选项,后面跟着任意数量的生成目标,Ant 将按顺序生成这其中的每个目标,并在此过程中解决所有依赖关系. 命令行选项: 默认情况下,Ant 寻找一个名为bui
2012-10-14 17:43:24 2640
原创 自动构建工具Ant深入剖析(二) Ant属性、目标、依赖深度详解
首先看一个示例XML文件:A simple project introducing the use of descriptive tags in Ant build files.可以看出,XML 注释可以使用在整个生成文件中以提高清晰性。而且,Ant 定义了它自己的description 元素和 description 属性,它们可用于提供更结构化的注释。Ant
2012-10-11 23:15:19 3753
转载 Android4.0新增API
Android 4.0 平台特性API等级:14 Android4.0 是一次重要的平台发布版,为用户和应用程序开发者增加了大量的新特性。在下面我们将讨论的所有新特性和API中,因为它将 Android 3.x 版本中广泛使用的API和全息图像主题带给了小屏幕设备,因此我们说 Android 4.0 是一次重要的平台发布版。作为一名开发者,现在你拥有了单一的平台和统一的 API 框
2012-10-11 22:49:36 3094
原创 自动构建工具Ant深入剖析(一) 配置环境及初步使用
Ant 是什么?Apache Ant 是一个基于 Java 的生成工具。据最初的创始人 James Duncan Davidson 介绍,这个工具的名称是 another neat tool(另一个整洁的工具) 的首字母缩写。Ant的作用:生成工具在软件开发中用来将源代码和其他输入文件转换为可执行文件的形式(也有可能转换为可安装的产品映像形式)。随着应用程序的生成过程变得更加复
2012-09-13 10:32:18 3264
原创 使用Ant 实现批量打包Android应用
由于公司运维需要以及应用中需要加上应用推广的统计,往往要对应二三十个渠道,按照正常方法一个一个的去生成不同渠道包的应用,不仅浪费了时间,而且大大降低了效率.上一篇讲到使用Ant进行Zip/Tar包的解压缩,实际上Ant工具不仅仅具有此类功能,它更强大的地方在于自动化调用程序完成项目的编译,打包,测试等. 类似于C语言中的make脚本完成这些工作的批处理任务. 不同于MakeFile的是,Ant
2012-09-08 09:21:39 6776 4
android-support-multidex.jar
2014-11-10
Android IOS风格侧边栏效果
2013-12-24
Android 深入ViewPager补间动画,实现类京东商城首页广告Banner切换效果
2013-10-29
GoogleIO2013 Android快速联网框架Volley
2013-07-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人