Android
文章平均质量分 79
Jenly_Yu
指间柔沙、怎塑浮华、
展开
-
dom解析
上一篇说到了pull解析、针对于pull解析做了一个封装、虽然在android里面推荐用pull解析、但是dom解析作为java三种常用的解析方法之一、没研究其速度方面哪个更好、对于dom解析、个人感觉还是很不错的、至少在封装的时候、可以封装的更抽象点、直接解析一个完整的xml、 /** * 解析XML * @param inputStream * @param start原创 2013-07-22 17:35:41 · 806 阅读 · 0 评论 -
Android之通过资源名称获取资源Id
有的时候我们需要通过资源名称获取资源Id,这个其实比较简单,只是做了个简单的封装,记录一下。/** * 资源文件工具类 * @author Jenly */public class ResourcesUtils { private static final String RES_ID = "id"; private static final String RES_STRING原创 2016-06-02 10:15:13 · 6797 阅读 · 2 评论 -
Android之来电秀实现(二)
今天要说的主题是来电秀实现里面的电话接听与挂机,在这里我们需要用到ITelephony.aidl相关的一些文件,如下图:将如上文件导入到工程,去掉一些不需要的aidl关联,其中PhoneUtils是自己创建的,里面主要写的是调用接听和挂机函数。 public static com.android.internal.telephony.ITelephony getITe原创 2016-03-11 16:53:46 · 3418 阅读 · 1 评论 -
Android之来电秀实现(一)
简单的说下实现来电秀的大概原理流程:首先通过监听来电状态,通过拦截来电然后在窗口弹出一层系统级别的弹窗,这层弹窗即是来电秀。因为商用的原因,不能直接贴代码,所以在这里,会贴一些比较核心的代码,大概分为五个步骤:第一:监听来电状态 /** * 电话状态监听(来电或去电) * * @author Jenly * */public class PhoneStateRe原创 2016-03-10 19:07:14 · 8284 阅读 · 4 评论 -
Android混淆打包
在这之前,看了下proguard官网介绍,并搜了下相关资料。 ProGuard简介 ProGuard是一个SourceForge上非常知名的开源项目。官网网址是:http://proguard.sourceforge.net/。 Java的字节码一般是非常容易反编译的。为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处原创 2014-07-02 21:50:19 · 6727 阅读 · 0 评论 -
Android之用layer-list,shape,selector画各种背景
1.Shape 简介作用:XML中定义的几何形状位置:res/drawable/文件的名称.xml使用的方法: Java代码中:R.drawable.fileNameXML中:android:background="@drawable/fileName" 或:android:src="@drawable/fileName" 属性 android:s原创 2015-12-15 19:22:24 · 5545 阅读 · 0 评论 -
Android之检测文本内容是否为空时左右摆动效果
一个好的产品,一定会注重每个细节,追求极致体验。而作为一个互联网移动开发者,在开发产品时也应尽量做到如此。此处省略一万字…我去,扯远了,请不要在意这些细节。回到正题,开发久了,总会有各种“偷懒”的想法,在同样的代码写了无数遍后,你会习惯封装。如:在父类BaseActivity或BaseFragment里面写一些经常用到的Toast,Dialog,Popupwindow这些提示类的控原创 2015-12-15 18:03:41 · 1188 阅读 · 0 评论 -
Android之EditText 为密码输入框时,密码的显示与隐藏
实现输入框密码文本的显示与隐藏有两种,一种是通过直接改变android:inputType,一种是通过改变android.text.method.TransformationMethod。方式一:改变android:inputType的值实现代码如下: /** * 密码显示或隐藏 (切换) */ private void showOrHide(EditTe原创 2015-12-15 16:24:55 · 6187 阅读 · 0 评论 -
Android之根据Uri获得图片或视频文件路径(解决4.4以上版本得不到路径的情况)
@SuppressLint("NewApi")public class UriUtils { /** * Get a file path from a Uri. This will get the the path for Storage Access * Framework Documents, as well as the _data field for the Media转载 2015-09-15 13:47:07 · 10862 阅读 · 4 评论 -
Android之dip与px互转
直接上码,只为记录:/** * * @author Jenly * */public class DisplayUtils { /** * dip转px * @param context * @param dipValue * @return */ public static int dip2px(Context context, float dipVa原创 2016-06-02 10:37:54 · 1263 阅读 · 0 评论 -
平面物体碰撞检测
闲来没事,突然想起了,最初学Android时,老师教过最简单矩形碰撞和精灵切割这些简单的算法,当时还说Android主要分两个方向,一个是做应用,一个是做游戏,现在想来,那夕阳下的奔跑,那是我逝去的青春…虽然现在主要是做Android应用开发,但是闲着没事,也就突然想着,把这简单的平面物体碰撞检测算法试着分析分析,并整理写了下。代码如下:/** * @author Jenly *原创 2016-06-02 14:30:17 · 1526 阅读 · 0 评论 -
Android之SlidingPaneLayout侧滑效果扩展(SuperSlidingPaneLayout)
说到侧滑菜单,记得在很久很久以前,一说到侧滑菜单就会立刻想到SlidingMenu,在当时的印象里比较火的侧滑菜单就是SlidingMenu,最开始觉得那种效果还蛮新颖的,后来Google官方出了SlidingPaneLayout和DrawerLayout后,大部分的侧滑菜单效果也就基本被满足了。本博文主要讲到基于官方v4扩展包中的SlidingPaneLayout来扩展侧滑效果,我给Slding原创 2016-10-08 17:06:59 · 2950 阅读 · 0 评论 -
Android之Adapter的封装与抽象(二)
记得之前有写过一篇Adapter的封装与抽象,是关于ViewPager、ListView、GridView、Spinner的Adapter,这里新增一个RecyclerView的Adapter。其实RecyclerView.Adapter已经写的很好了,在这里再进行一下封装与抽象,来简化代码的耦合性。与之前Adapter的封装大致风格一致,代码如下:/** * @author J原创 2016-06-08 09:35:53 · 794 阅读 · 0 评论 -
Android之Adapter的封装与抽象
在开发的过程中,常常会用到ViewPager、ListView、GridView等、这些带有Item的视图控件,而这些控件有个共同点就是都要用到它们的适配器,我们在实现视图展示时,一般都会去写个自定义的适配器去继承PagerAdapter或Adapter或Adapter的子类,因为Android源码自带的这些适配器都比较抽象,往往在我们开发时,写的一些自定义适配器都需要重写Adapter父类的一些原创 2015-04-16 18:46:48 · 5338 阅读 · 5 评论 -
常用的Log日志打印与输出
/** * log日志 * @author Jenly * */public class LogUtils { private static final String TAG = "Jenly"; private static final String COLON = ":"; private static final String ARROW = "->"; /**原创 2014-06-24 10:27:13 · 9761 阅读 · 2 评论 -
Android之Adapter的封装与抽象(三)
本篇博文是在之前的基础之上进行了封装与抽象的。主要是思想是通过封装一个通用ViewHolder,来解耦和提高通用性。如果你没看过我之前写的Adapter的封装与抽象,建议先看下,这样对看本片博文思路有帮助。下面有相关博文的链接。首先是通用的ViewHolder,通过Adapter 每一个Item的convertView来实例化一个ViewHolder,然后根据控件的id得到相对原创 2016-08-25 14:18:07 · 898 阅读 · 0 评论 -
跨平台之AppCan与DeviceOne对比点评记录
目前已有的移动中间件开发技术主要包括:IOS、Android或WindowsPhone的纯原生开发;以Html5技术为核心的中间件开发(例如PhoneGap, HBuilder, AppCan, ApiCloud)、以OpenGL技术为核心的中间件开发(例如:CrossApp)、以代码转换和原生反射技术为核心的中间件开发(例如:Titanium,Xamarin,React Native),以及以虚原创 2016-07-14 09:50:44 · 6325 阅读 · 2 评论 -
Android Studio插件整理
现在Android的开发者基本上都使用Android Studio进行开发(如果你还在使用eclipse那也行,毕竟你乐意怎么样都行)。使用好Android Studio插件能大量的减少我们的工作量。1.GsonFormat快速将json字符串转换成一个Java Bean,免去我们根据json字符串手写对应Java Bean的过程。使用方法:快捷键Alt+S也可以使转载 2016-06-30 15:59:05 · 1676 阅读 · 0 评论 -
Android之四大图片缓存原理、特性对比分析
从总体设计和原理上对几个图片缓存进行对比,没用到他们的朋友也可以了解他们在某些特性上的实现。 上篇关于选择开源项目的好处及如何选择开源项目可见:开源项目使用及选型。 一. 四大图片缓存基本信息Universal ImageLoader 是很早开源的图片缓存,在早期被很多应用使用。 Picasso 是 Square 开源的项目,且他的主导者转载 2016-06-02 17:27:07 · 1174 阅读 · 1 评论 -
Android之解决打包apk方法数不能超过65k的问题
作为一名Android开发者,相信你对Android方法数不能超过65K的限制应该有所耳闻,随着应用程序功能不断的丰富,总有一天你会遇到一个异常:Conversion to Dalvik format failed:Unable toexecute dex: method ID not in [0, 0xffff]: 65536可能有些同学会说,解决这个问题很简单,我们只需转载 2015-04-23 16:32:15 · 7215 阅读 · 0 评论 -
MD5和SHA加密
/** * @author Jenly * @date 2014-8-8 */public class DigestUtils { public static final String MD2 = "MD2"; public static final String MD5 = "MD5"; public static final String SHA1 = "SHA-1"; p原创 2015-03-19 10:05:11 · 629 阅读 · 0 评论 -
Eclipse常用开发插件
以下是我整理的自己开发过程中的常用Eclipse插件,按字母排序:(1) AmaterasUML 介绍:Eclipse的UML插件,支持UML活动图,class图,sequence图,usecase图等;支持与Java class/interface之间的相互导入导出。 官方网站:http://amateras.sourceforge.jp/cgi转载 2014-07-02 22:23:32 · 945 阅读 · 0 评论 -
通过WebView实现简单的浏览器
对于WebView组件、虽然在做非浏览器app的时候用到的不多、但还是对这个组件的用法有个基本的了解、下面通过实现一个简单的浏览器的基本功能来熟悉下WebView组件、和它的一些基本使用方法、布局文件:activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"原创 2013-10-24 16:29:30 · 11176 阅读 · 1 评论 -
图片异步加载2
之前的 图片异步加载1用采用的是内存记忆存储的方式异步加载图片、而现在我将采用、内存记忆存储和本地缓存方式、并且采用惰性的方式来实现ListView的图片异步加载、这种方式相对于第一种方式来说、更节省流量、并且更人性化、异步加载的实现核心代码如下、public class BitmapLoader { private Map imageViews = Collections.sy原创 2013-08-23 11:38:35 · 1365 阅读 · 0 评论 -
图片异步加载1
在android的ListView里面、我们常常需要用到图片的异步加载来展示一些图片、实现异步加载的核心代码如下、public class ImageLoaderByTag { private HashMap> imageCache;//使用软引用,可以由系统在恰当的时候更容易回收 public ImageLoaderByTag(){ imageCache = new原创 2013-08-23 10:56:46 · 1295 阅读 · 0 评论 -
图片倒影效果
“鱼龙隐苍翠,鸟兽游清泠;菰蒲林下秋,薜荔波中轻。”这是唐代诗人储光羲在《同诸公秋霁曲江俯见南山》中描写倒影的神奇魅力的诗句、而现如今我们通过代码就可以轻松简单的实现这种倒影效果了、是不是强大呢、好了、进入主题、实现图片倒影效果的主要方法如下: /** * 图片倒影效果 * @param originalImage * @return */ publ原创 2013-07-26 10:54:08 · 1293 阅读 · 0 评论 -
apk调用另一个apk
有的时候我们需要通过一个apk调用另一个apk、比如说现在有A.apk和B.apk现在我们想通过A.apk调用B.apk、那么我们首先需要在B.apk的AndroidManifest.xml配置文件做下稍微的修改、配置文件修改如下: <!-- 注释的这表示之前默认的 -->原创 2013-07-23 15:25:43 · 4682 阅读 · 1 评论 -
sax解析
前面说到了pull解析和dom解析、自然少不了sax解析、而在这里、我将sax解析写成接口、方便更具扩展性、比如要处理类似格式的xml文件:1结果信息结果信息实体类:public class ResultInfo { private String resultCode; private String resultMessage=""原创 2013-07-23 11:36:06 · 835 阅读 · 0 评论 -
pull解析
在android里面、pull解析应该是用到的非常多的、而每次给你一个xml让你解析、无数次的去重复几乎相同结构的代码、而感觉着实的有些无奈、而大部分作为C/S间交互用到的xml的文件格式大多都是相同的、有没有想象下、将解析这个繁琐的流程进行封装下、以便更好更方便的调用、好了、不多说、直接上封装好的代码: /** * 解析XML * @param inputStream原创 2013-07-22 17:13:23 · 2945 阅读 · 0 评论 -
apk的安装和卸载
之前写了一篇关于静默安装apk的、那个其实是在获取root权限的条件下来通过执行命令完成的、其功能本身已经很强大了、只是前提条件是需要root权限、然后什么静默安装卸载就都是浮云了、对于以下刚刚学android的同学来说、普通的apk安装、就已经够用了、好了、废话不多说、直接上代码、封装代码如下、 /** * 安装apk * @param context * @para原创 2013-07-04 17:28:19 · 852 阅读 · 0 评论 -
wifi状态的判断和处理、
现如今、wifi早已无处不在、而通过代码对wifi状态的判断和处理、也是比较简单的事、之前总结了性的写了几个方便调用的简单方法、针对android手机wifi状态的判断和设置操作、代码如下: /** * 判断是否是wifi网络 * @param context * @return */ public static boolean isWifi(Context co原创 2013-07-09 15:19:19 · 950 阅读 · 0 评论 -
Android 之SharedPreferences存储
封装好的一个工具类、直接上代码:/** * @author Jenly * @date 2014-8-8 */public class SharedPreferencesUtils { public static final String PREF_NAME = "org.king.pref_name_jenly"; public static SharedPreferen原创 2015-03-19 09:59:09 · 1783 阅读 · 0 评论 -
Android网络通信的基本实现
似乎很久没有写博客了,今天看了无意间看了下半年前写的代码,设计似乎很有局限性,但基本的通信也算是实现了。不知道以后看到现在写的代码会不会也会有这样的想法呢?进入正题,android网络通信的基本实现的有两种方式,一种是通过HttpClient来实现,一种是通过HttpURLConnection来实现。直接上代码:首先是一个抽象的http类/** * 抽象的Http * @a原创 2015-01-19 11:54:00 · 3721 阅读 · 0 评论 -
json解析
首先需下载google提供的Gson.jar包、来实现json解析与对象、Map之间的互转、方法比较简单代码如下: /** * json转对象 * @param json * @param clazz 返回对象类型 * @return */ public static T jsonToObject(String json,Class clazz){ Gson原创 2015-01-19 17:08:06 · 1062 阅读 · 0 评论 -
XStream解析xml和json
XStream是一个在我看来比较好的一个第三方包了。因为它在解析时支持注解、这样很是方便,并且xml跟json这两种格式的文件都能进行解析,XStream本属于java的一个第三方包,甚是好用,若是拿它在android开发环境,也是能正常解析,但有点美中不足,因为android开发环境时,XStream不太支持json转对象,只支持对象转json,其他xml与对象的互转都支持。这样的话双解析就有了原创 2015-01-19 21:02:06 · 4282 阅读 · 0 评论 -
android通过获取root权限实现静默安装、
因为个人习惯原因、习惯性的把他写成静态方法、存放在工具类里面、方便直接调用、现在把该方法提出来、可直接通过命令来实现静默安装(pm install *.apk)、 /** * 请求ROOT权限后执行命令(最好开启一个线程) * @param cmd (pm install -r *.apk) * @return */ public static boolean ru原创 2013-06-13 10:47:53 · 5365 阅读 · 7 评论 -
andorid调用打电话、发短信、
对于andorid调用本地打电话、发短信、这两个功能代码都比较简单、直接上代码、调用打电话、 /** * 打电话 * @param context * @param phoneNumber * */ public static void call(Context context,String phoneNumber){ Intent inten原创 2013-07-04 17:50:37 · 1245 阅读 · 0 评论 -
android调用自带拍照和录视频、
通过调用本地自带的拍照和录视频功能、比较简单、因为都是平时写的工具类代码、方便直接调用、就直接上代码了、调用拍照功能、 /** * 拍照 * @param activity * @param requestCode * @param fileFullPath * */ public static void imageCapture(Activity activi原创 2013-07-05 09:30:14 · 1350 阅读 · 0 评论 -
Android自定义控件属性详解
1. reference:参考某一资源ID。 (1)属性定义: background" format = "reference" /> (2)属性使用: <ImageView android:layout_wi转载 2014-07-03 13:49:04 · 1649 阅读 · 1 评论 -
Android之联系人A~Z快速索引效果
说到android的联系人的快速索引,很快就能想到系统自带的快速索引效果,而且现在很多主流的应用都有用到,如QQ的通讯录,微信的通讯录等等。要想实现快速索引的效果,我们先来理下其实现原理:首先,我们需要定义一个自定义的控件,得到控件(自定义控件SlideBar)的总高度与宽度,通过SlideBar控件的总高度算出从A~Z(一般最后都有个#)每个字符的需要的高度,再通过循环偏移单个字符高度来原创 2015-09-15 15:21:13 · 5345 阅读 · 1 评论