自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

~

  • 博客(47)
  • 资源 (5)
  • 收藏
  • 关注

原创 Android之实现具有优先级的线程池

在Android开发中为了复用线程以及节约线程开销,线程池是使用较多的一种方法,有时也会有这样的需求,不同的线程执行任务的紧急度是不一样的,后加入线程池队列的任务可能需要优先处理,在ThreadPoolExecutor的构造函数中需要传递一个继承BlockQueue的子类。     在SDK中已经提供了一个PriorityBlockingQueue这样的优先级阻塞队列,我们要做的就是扩展Run

2015-11-19 13:57:31 3090

原创 自己写Android图片缓存框架之二级disk缓存

上一节中已经运用Lru算法实现了内存缓存,在从桌面回到前台时可以快速的从内存中进行加载图片,但是如果应用被系统回收或人为的主动清除这样还是会从网络加载,所以我们不仅需要缓存在内存中,还要在磁盘中进行缓存,这样如果内存没有就从磁盘中进行读取数据。      这里我们使用google提供的DiskLruCache来实现disk缓存,由于源码过长就不贴了,所有的代码包括图片加载的demo已经上传到g

2015-08-26 12:08:00 920

原创 自己写Android图片缓存框架之一级内存缓存

Android开发中比较重要的一块就是图片的加载,其中可以说道的地方太多了,无论是加载大图造成的OOM,多图同时加载造成滑动卡顿,以及网络图片重复加载慢而且耗流量这些问题都是一个新手遇到过的问题。现在已经有好多开源框架拥有图片加载缓存的功能,Universal-Image-Loader, afinal,Xutils都可以实现图片缓存的效果,但是我们不仅需要会用,而且要知道为什么能这么用。所以就

2015-08-22 16:51:33 1411

原创 Android事件总线框架Otto使用

Otto框架是square公司为Android出的一款事件总线框架,主要是为了解决大项目中耦合性过高的问题,比如涉及到多个类都需要响应某一个操作,原始的做法就是使用广播,事件产生者发送广播,事件订阅者接收广播,并作出相应的操作,但是这样在项目越来越大后,就越来越不好维护和扩展,所以我们引进Otto这款框架,类似的还有一个Event Bus,Otto相比后者优势主要是上手什么简单,缺点是性能上会

2015-08-13 12:25:16 5354 1

原创 Android中级联列表ExpandableListView使用

最近做级联操作,一级菜单和二级菜单的显示,发现Android官方自带了

2015-08-07 15:14:13 3731

原创 Android优化之代码优化

本章节是对《Android优化技术详解》一书中代码优化的读后总结,选取了其中常用的一些需要注意的优化细节。    1.在字符串频繁操作时,尤其是字符串拼接时多使用StringBuffer或者StringBuilder,第一个是线程安全的,第二个线程不安全,但是速度快一些。    2.循环优化,一般的写法是这样 List list = getList(); for (int i =

2015-08-05 14:30:02 562

原创 Android获取屏幕宽度和高度

在上一篇的仿知乎进度条中,因为在调用ondraw前getwidth方法返回的是0,所以我直接将width设为1080了,而且为了保证一开始的滑块位置的正确性,在初始化线程的时候加入了delay,这样让onDraw先调用,缺点就在于体验不好以及屏幕的适配问题,今天偶然看别人的源码时发现了可以获取屏幕高宽的方法,那么知乎进度条的问题就解决了。     DisplayMetrics displayM

2015-07-27 11:57:18 998

原创 自定义控件之仿知乎进度条

自定义控件系列开始连载了,今天我们要做的是知乎的进度条的效果,先上图                                刚开始不太会做动态图,自己截了几张图合在一起,看起来会比较卡,自己运行源码就比较流畅了。     回归正题,看到这样一个效果会想到如何实现呢,帧动画也是可以的,但是不平滑,放很多帧又会卡,所以我们先观察这个动画,底部是一个蓝色的线段,中间有4个白色滑块

2015-07-23 16:54:54 1190

原创 自定义控件入门学习之Helloworld

从今天开始就要学习自定义控件的使用了,以后看到什么酷炫的效果都会试着写一写实现的,不然还是要先学会基础的使用才行,作为一个新手第一步肯定是照着别人的敲了,所以先找了一篇相对简单的自定义控件的实现的文章,http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0308/994.html     首先在res/values下面建立一个a

2015-07-22 17:11:15 705

原创 Android仿虾米音乐播放器之自定义进度条seekbar

先上图吧,仿照写的进度条很明显不是系统的自带的进度条,所以我们需要自定义来实现这个效果,先看看官方给的例子 <gradient android:startColor="#ff9d9e9d" android:centerColo

2015-07-19 15:39:24 7362 1

原创 Android仿虾米音乐播放器之专辑图片模糊处理

用过虾米音乐的都知道歌词界面的背景不是固定的,而是根据专辑图片动态生成的,一开始我的实现方式是将图片放大然后显示成背景,然后看起来就像是马赛克的界面,没有平滑的感觉,于是想到了将图片模糊化然后再设置成背景,就像下面这样的效果。                                                      知道用模糊处理后,当然是先找现成的轮子了,了解了一下还真的

2015-07-19 14:32:33 2097

原创 Android仿虾米音乐播放器之电话和耳机监听

任何一个用户都不会希望在电话打来时,音乐依然在播放,这样或许用户马上就卸载了我们的app,另外当用户的耳机拨出时我们需要及时的停止音乐,因为拨出耳机这个动作可能不是用户主导的,或许是耳机的松动,或许是不小心,如果耳机拨出后音乐继续播放,也可能会带来不必要的麻烦。   先说电话监听,Android其实并没有真正的来电监听的Action,只有一个读取电话的状态,以及一个呼出状态的Action,但是

2015-07-18 21:00:23 1437

原创 Android仿虾米音乐播放器之通知栏notification解析

通知栏notification是Android中一个很重要的组件,可以在顶部状态栏中存在,用户也可以通过此来操作应用,在Android中只有3.0以上的版本才加入了notification的按钮点击功能。    先看一下仿虾米写出来的通知的效果这是一个自定义的notification,添加了,前一曲、播放、暂停、下一曲等功能,自定义的notification需要自己写布局文件,并通

2015-07-18 20:21:21 12385 3

原创 Android仿虾米音乐播放器之service

service就是后台服务,不同于activity在前台,虽然用户看不见,但是作用是很大的。   我们在service中先需要实例化mediaplayer对象,这个在上节中已经讲了,除此之外我们需要注册一个广播接收器,用来接收用户操作的指令,比如上一曲,下一曲,暂停,播放等功能。   private String TAG = "MusicService"; private MediaP

2015-07-17 09:20:14 1649

原创 Android仿虾米音乐播放器之MediaPlayer使用

MediaPlayer是Android中用来播放媒体文件的一个类,我们用其来播放音乐文件,先介绍用法。   首先MediaPlayer需要实例化对象,我们在onStratCommand中进行实例化。private MediaPlayer player;// api2.0以后采用onStartCommand @Override public int onStartCommand(

2015-07-16 20:49:58 1618

原创 Android仿虾米音乐播放器之本地音乐获取

Android系统为了一些常用的信息(如音乐、视频、图像、联系人等)内置了一系列的ContentProvider,所以我们可以通过这个来获取Anroid中本地音乐,首先得加入权限 如果想要修改甚至删除数据,还要加上写的权限    为了实例化mp3音乐,我们首先定义一个mp3info的bean,里面给出所需要的属性,比如id,title,album等等,另外为了使其能在activi

2015-07-15 17:59:25 2067

原创 Android仿虾米音乐播放器之布局介绍

正式的第一篇先讲布局,首先分析下面的图中所用的布局侧滑用的是鸿洋大神写的侧滑控件,非常的好用,就是没有加入事件分发。代码如下,自定义的控件public class SlidingMenu extends HorizontalScrollView{ private LinearLayout mWapper; private ViewGroup mMenu; priva

2015-07-15 17:31:09 2565

原创 Android仿虾米音乐播放器之开篇介绍

断断续续的写了好久,因为项目已经接近尾声了,所以要开源出来,一开始决定模仿虾米音乐是因为布局UI上比较喜欢,其中最困难的地方应该是多个播放页面的联动,通知,尾部栏,本地音乐选择栏,歌词页面,4个地方需要考虑联动的问题。    当然项目还没有开发完,持续更新中,已开源到github上,地址:https://github.com/sheepm/copyxiami    希望给颗星支持一下 ,=

2015-07-15 16:49:02 2062

原创 Android网络请求框架Volley的使用

Volley是Google在2013年推出的一款网络请求的框架,主要解决数据量小但是请求频繁的情况,对于大流量的比如文件上传下载,流媒体等则表现不佳。一般用于json获取,图片加载。   要想使用volley,首先需要jar包,jar包和源码下载地址:http://download.csdn.net/detail/u013926110/8895911   1.请求json数据1.1实例

2015-07-13 18:54:40 576 1

原创 移动GIS作业之调用百度api接口时请求中文参数url

做兴趣点搜索的时候用到了百度apistore中的api,

2015-07-12 20:34:36 1847

原创 移动GIS作业之onActivityResult使用

先上效果图目的就是点输入起点时,跳转到一个新的页面,然后选择地点后结果回传这时就能用到startActivityForResult方法以及onActivityResult方法,首先在左边的页面的类中实现这个方法@Override public void onActivityResult(int requestCode, int resultCode, Intent data) {

2015-07-12 18:23:31 473

原创 移动GIS作业地图应用之开篇介绍

作为移动GIS课程的大实习,要求写一个移动端的和地图相关的应用,写了两周左右终于写完了(希望不要挂了我~),其中遇到了很多问题,也解决了很多问题,收获很大,后续会分文章详述遇到的一些问题,当然时间仓促,应用中还有一些bug没有解决。     已经开源到github上面,地址:https://github.com/sheepm/surround。     上面应用了高德地图的sdk,以及百度

2015-07-10 16:58:39 1502 1

原创 eclipse建立aidl文件报错Error executing aidl: Return code 1

看视频学习AIDL,然后照着视频里面建立了一个aidl文件,没想到就报错了,注:视频里面用的Android Studio。视频里面建立的aidl文件有一套模板,eclipse建立的aidl文件什么都没有,甚至是没有代码提示。项目报了一个错Error executing aidl: Return code 1。遍历了各个网站,甚至是stackoverflow都没有找到答案。只有一个类似的ecli

2015-07-10 10:17:57 2520 1

原创 Android之activity与application生命周期

理解Android中activity,application甚至是service的生命周期是很重要的,能更好的了解一个程序在各种情况下运行的过程,然后编写出更高效和健壮的程序出来。   还是上图比较直接明了,我把activity,application中比较重要的方法都添加了Log,看看调用顺序是怎么的。   首先是程序启动可以看出首先是application的oncreate

2015-07-09 12:04:58 5296 1

原创 Android之activity加载模式

Android的activity在AndroidManifest中有一个属性android:launchMode,里面有4个加载模式,分别是:standard,singleTop,singleTask,singleInstance。    1.standard模式    standard即标准,如果在AndroidManifest中没有设置则默认为standard,同一个activity在

2015-07-07 21:05:08 531

原创 Android优化之ViewStub

在Android程序中,可以使用ViewStub来实现延时加载或者动态加载的效果,当用ViewStub进行布局时,在没有setVisibility或者inflate()时,会隐藏在页面中,而且不会实例化,这样的好处就是提高加载速度,当我们需要时再去加载,比较类似于java中的“懒加载”。     另一个需要注意的就是ViewStub在被实例化后,就变成了已经定义指向的布局了,ViewStub相

2015-07-04 19:37:35 959

原创 Android优化之bitmap图片

在android项目的imageview中使用大图bitmap时会占据很大的内存,而且在很多时候我们并不需要显示原图那么大的图片,比如一个100*100的图片,我们只需要显示50*50,直接设置的话会造成大量的内存浪费。     所以我们需要对图片进行优化,减少内存开销。我们会使用BitmapFactory.Options的方法来进行图片缩放,先介绍几个重要的属性。inJustDecode

2015-07-01 17:17:37 840

原创 Android中fragment切换状态

最近写一个地图的app,用到了fragment来进行切换,其中有fragment中显示的是地图,但是发现在切换过程中每次地图会重新加载,实际上就是fragment的重新创建,用户体验不好,而且很耗费流量。     经过查找发现fragment除了replace方法之外还有两个方法show,hide可以解决这个问题。     private void replaceFragment(Frag

2015-06-25 22:40:44 1055

原创 Android之Fragment的嵌套布局

在3.0后的版本,android推出了fragment,极大的增强了布局的灵活性。有时候可能项目需求需要在一个FrameLayout中嵌套另一个FrameLayout。先来分析红色Fragment中嵌套绿色Fragment,android中在继承fragment的类中多了几个方法,其中一个是getChildFragmentManager() 当然也有getParentFragment(

2015-06-09 23:03:40 3050

原创 android中判断service是否已经启动

在写一款音乐播放器时,发现如果不判断service是否启动,每次进入本地歌曲的界面时由于重新加载就会造成重复startService的现象,后台播放的歌曲就会停止,所以我们需要先判断如果service已经启动,那么便不启动服务。    查资料后发现android中已经封装了一个获取正在运行的activity和service的类:ActivityManagerActivityManager

2015-06-09 01:45:18 9575 1

原创 android的自定义listview以及listview常用属性设置

ListView在绑定ArrayAdapter时,我们一般会这样写 ArrayAdapter adapter = new ArrayAdapter(context, android.R.layout.simple_expandable_list_item_1, objects);       第二个参数一般会使用系统的这个文件,在listview中我们能设置滚动条,间隔线,但是仍然不能满足

2015-06-07 00:24:37 948

原创 Android中对json数据的解析

如今json数据在网络开发中作为传输数据的使用已经超过了xml格式的应用。json数据的格式比较简单,易于解析,另外占用带宽小。    一般解析json数据的方法有两种,一个是运用android的SDK下面自带的包进行解析,一个是运用第三方的包进行解析,比如google出的Gson,还有阿里出的FastJson,其他的不赘述。   比如对于下面一个json数据的解析:{"Name" :

2015-05-25 21:43:11 415

原创 Android之4.4版本以上沉浸式状态栏实现

Android在4.4(KITKAT)版本加入了沉浸式,这个概念开始是在ios上使用的,现在ios的应用基本上都使用了沉浸式,而android只能在4.4及以上的版本进行使用。    先看看没有沉浸式的效果:可以看到顶部的状态栏和底部的导航栏的颜色与界面不搭配看起来比较突兀。     只需要在activity的oncreate方法中加入几行代码就能使状态栏和导航栏与界面融为一体

2015-05-11 00:03:03 1231 1

原创 Andorid实现Toast覆盖上一个文本

音乐播放器中用户在选择播放模式时,传统的toast会一个显示完之后才会显示下一个,用户在连续的点击之后,滞后性十分严重,影响用户体验。      所以必须及时的响应用户的点击事件,于是我们想到只用一个全局Toast对象,判断toast对象,如果存在就直接更改Toast的值就好了,下面是一个简易的选择播放模式的demo,用户每次点击图片时,会切换图片,并及时用Toast显示相应模式。publ

2015-05-10 00:45:19 2475 2

原创 Android配置单元测试

在Android中为了简化代码冗余,利于解耦,经常将一些重复操作,数据库操作,HTTP请求,JSON/XML解析等操作进行单独编写成静态工具类便于调用。而在工具类编写完成后不是马上进行页面布局的实现,而是进行工具类的测试,以免后期出现BUG难以调试。     首先在AndroidManifest.xml配置两行代码 这行是在application中定义的<instrumenta

2015-03-26 12:15:50 486

原创 java实现随机中文验证码

现在很多应用的验证码采用的中文验证码,一定程度的放大了OCR之类的图像识别破解验证码的难度,原理主要是中文编码的生成格式,规定两个127以后的字节组合在一起形成一个汉字,前面的一个字节(高位)从0xA1到0xF7,后面的一个字节(低位)从0xA1到0xFE。这样就能组成7000多个简体汉字。    为了去掉生僻字,选取高位176到215,低位161到254,保留下来3600多个常用字.

2015-03-24 22:35:26 2567

原创 android中textview单行显示,多余的省略

有时候在ListView中显示Textview时由于长度过长而导致text会隔行显示,UI上看起来就比较的不友好。      官方提供了相关的实现单行显示的方法。       <TextView android:id="@+id/music_title" android:layout_width="wrap_content"

2015-03-19 22:57:13 36277 2

原创 Android的activity跳转动画实现

Android在进行activity跳转时原生动画比较突兀,虽然google官方出了一个方法overridePendingTransition(int enterAnim, intexitAnim),但经过实际的测试发现效果并不如人意,在跳转时前一个界面会出现运动到一半就变黑消失的情况,继而在寻找之后终于发现了一个比较有效的方法,就是自己写一个theme主题,继承自@android:style/A

2015-03-08 00:05:03 689

原创 Android圆形imageview实现

现在有的应用在用户头像上使用圆形的imageview,比如百度贴吧。实现上并不困难,需要写一个类继承自ImageView,重写ondraw方法。     代码如下:public class CircleImage extends ImageView { /** * 3个构造函数 * @param context */ public CircleImage(Context

2015-03-06 16:24:12 1421

原创 Android中使用开源库slidingMenu实现侧滑效果

现在的Android应用中很多都有侧滑菜单的存在,为的是让一个小屏幕内展现更多的内容,今天我们使用SlidingMenu这个开源库已经封装好了侧滑的操作,下载的地址是:http://download.csdn.net/detail/u013926110/8460867    接下来就是将下载下来的开源库导入到eclipse中,并在需要引用这个项目上右键,选择properties/and

2015-02-27 17:25:17 639

Android中级联菜单ExpandableListview的使用

Android的ExpandableListView,可以用来实现一级二级级联菜单,这是一个demo

2015-08-07

自定义仿知乎进度条

这是一个自定义的仿知乎的进度条,可以自己设置背景及滑块的颜色

2015-07-23

volley源码和jar包

这是volley的源码以及jar包,用于小数据量的频繁的网络请求。

2015-07-13

activity跳转动画

这是一个android的实现activity跳转的代码demo

2015-03-08

SlidingMenu_library开源库

SlidingMenu是一种比较新的设置界面或配置界面效果,在主界面左滑或者右滑出现设置界面,能方便的进行各种操作.目前有大量的应用都在使用这一效果。

2015-02-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除