自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 Java反编译

Java反编译这篇文章来自Java Decompiler官网文档 (http://jd.benow.ca/)Java Decompiler Java反编译项目(Java Decompiler project)目的是开发可以反编译和分析Java 5及更高版本的字节码的工具集。 JD-Core是一个库,可以从.class文件重建java源代码。JD-Core可能被用来恢复丢失的源代码和探索Java

2016-05-01 13:31:08 443

原创 Ant构建Java项目

Ant构建Java项目我们创建HelloWorld项目,将源文件.java发到src中,编译后字节码.class放到bin中,对应的jar包放到exe目录中。首先使用命令行来构建项目:1.创建src目录      md src2.在src目录中存放源文件HelloWorld.java,类HelloWorld的包名为com.tghz.test    那么创建包名路径,cd

2015-06-21 15:15:05 2572

原创 Android 编码规范

Android编码规范1.包命名一个唯一的包名总是全部小写,构造为顶级域名com/edu/net+机构部门缩小+项目所写+模块名例如com.tghz.gameimsdk.activity2.类命名类名采用驼峰式命名,大小写混合,每个单词的首字母大写,使用完整单词,避免缩写词(除非该缩写词被广泛的使用,如URL,HTML)。类名的每个单词为名词,避免出现无意义的单

2015-05-18 15:46:51 669

原创 Android PullToRefreshView自定义下拉刷新控件

MyPullToRefreshView继承自LinearLayout,布局为vertical,该容器中包含三个子view,这三个view从上到下依次排列在LinearLayout中。效果图如下:                                                                         下图中蓝色部分是充满屏幕的,Header

2015-05-16 14:53:50 1376

原创 View的getWidth/getHeight与getMeasuredWidth/getMeasuredHeight的区别

View的getWidth/getHeight与getMeasuredWidth/getMeasuredHeight的区别

2015-05-12 15:49:38 1464

原创 Andorid存储目录知识总结及文件操作方法封装

Andorid存储目录知识总结和文件操作方法封装。

2015-04-27 17:02:13 896

原创 Android Application的一些总结

Application的生命周期是最长的,随着程序的启动而创建,整个程序的结束才会被销毁。我们常常把一些需要保存的全局变量保存在Application,而不是保存在Activity中,那样还需要传递,且会随着Activity的销毁而被销毁掉。然而Application的长处也成了它的短处,因为Application不会在程序的过程中被销毁,那么很有可能保存的数据过多OOM,也可能内存泄露(

2015-04-26 13:56:06 1660

原创 ListView的三大适配器ArrayAdapter,SimpleAdapter,MyAdapter

ArrayAdapter是一个只在列表项ListItem上显示TextView的适配器。(其实在列表项上可以有其他组件,在后面会介绍)我们来看一下其构造函数。 public ArrayAdapter(Context context, int textViewResourceId) { init(context, textViewResourceId, 0, new ArrayLi

2015-04-16 18:18:45 3444

原创 Android开源项目——自定义圆形图片组件CircularImageView

项目github地址:控件功能:可以将任意图片裁剪成圆形,控件的大小可以自定义,可以指定图片中心点和半径,也可以添加圆形边框并设置边框的颜色。使用方法:和使用其他自定义控件没什么区别,这里只需要使用attr.xml中的属性和CircularImageView类文件即可。下面我列举几种使用情况1.设置控件大小和图片资源<com.example.circularim

2015-04-13 15:03:57 4472 2

原创 Android自定义控件实现

最近在项目中写了一个自定义的倒计时控件,效果是倒计时开始后,红心逐渐被填充满。效果如下图:                                                  分为两部分:计时器和绘制Bitmap。计时器使用Timer和TimerTask,每个一秒执行一次TimerTask的run函数,使控件重绘。代码如下:mTimer = new Timer

2015-04-11 15:27:05 773

原创 fragment的保留

前面讨论过设备旋转的问题,当设备旋转时配置发生改变,系统默认的是销毁Activtiy,然后再重建Activity,因为新的配置可能需要新的资源。我们可以在AndroidManifest.xml的Activity标签中设置Android:configChanges的属性,然后重载onConfigurationChanged(Configuration),那么指定的配置发生改变时就不会销毁和重建Act

2015-03-11 15:32:13 873

原创 Fragment的总结

为什么会引入Fragment呢?考虑一下这种需求:一个列表明细类应用,包括列表界面和详情界面,当我们点击列表中某一项时,可以跳转到指定的详细界面,还可以左右滑动来切换不同的详情界面。在平板电脑上的横屏下,左侧是列表界面,右侧是详情界面,当点击某一列表项,右侧的详情界面会跳转到指定界面。Activtiy无法满足上面UI的灵活使用要求,即使Activity可以动态改变界面,但是Activity还是

2015-03-10 18:52:16 847

原创 ConnectivityManager源码分析

先来看一下关于ConnectivityManager类的介绍。/** * Class that answers queries about the state of network connectivity. It also * notifies applications when network connectivity changes. Get an instance * of this

2015-03-07 16:09:30 1859

原创 关于广播接收器BroadcastReceiver的简单总结

注:以下内容主要是为了备忘,可能内容上不严谨或书写格式上比较乱。在写BroadcastReceiver之前先讨论一下Intent的用法。Intent的作用有启动自身或其他应用中的Activity,开启广播和服务。Intent有显式和隐式之分。其构造函数有两种类型:public Intent(Content packageContext,classcls),参数常为this/co

2015-03-06 16:51:01 1536

原创 设备配置(Device Configuration)改变时的处理方法

当设备在横纵屏切换时,当前Activity的状态变化过程是:onPause()->onStop()->onDestroy()->onCreate()->onStart()->onResume()。这样会导致什么样的问题呢?假如当前Activity所使用的一些局部变量在重新onCreate后就不是原来的值了,也就是当前Activity所依附的值被改变了,我们可以使用的解决方案是:重载onSave

2015-03-05 17:04:47 6777

原创 关于struct,enum和typedef的知识总结

声明一个结构体的一般形式是:struct 结构体类型名    {成员变量集合};如:struct Student{      int num;      char name; };结构体类型的定义方法及其初始化C语言中的做法:struct Student stu1,stu2;C++在保留上面的做法的同时也可用下面的方法:Student stu1,stu2

2015-03-03 19:41:44 672

原创 自定义Base64编码和解码的实现

今天把之前实现的Base64的过程写出来,这篇文章的思路是这样的,首先使用自然语言和编程语言来描述Base64编码的过程,然后介绍实现整个编码过程所设计的接口函数,最后是代码的实现和测试。

2015-02-17 18:13:56 3045

原创 Base64编码与解码原理和使用及复杂数据的存储

Base64是网络上最常用的传输8bit字节数据的编码方式之一,也可以用在复杂数据的存储上,比如我们要把类对象和图片等复杂数据进行存储,就需要将这些对象和图片的字节数据进行Base64编码,然后再讲编码后的String存储到XML文件中。      我们先来简单的了解Base64的原理:3*8=4*6      例子:s13       首先将其转换成ASCII后对应的是:115 49

2015-02-09 11:05:41 4239

原创 对Thread中MessageQueue进行操作来优化性能

我们来解决一个可能在项目工程上遇到的问题,我们每个人都有过这种操作:使用SeekBar(拖动条)来调节系统的音量,比如在电脑上改变音量大小的操作。在实现这一功能之前,我们先把我们要达到的效果列出来:     1.我们要使这个整个划动过程尽可能的流畅,不能出现划动时卡顿的情况;     2.我们在划动SeekBar的过程中,系统音量的变化过程要实时反应出来;       3.不能因为过快

2015-02-06 13:38:04 692

原创 Thread+Looper+Handler原理及项目中后台线程的应用

Handler在我刚做开发Andorid时就接触过,但是当时对其与Looper,MessageQueue,Thread的关系非常模糊。我觉得很多Android开发者都对Handler不是很清楚。由于最近的项目中使用Handler比较多,才对其原理进行了较深的研究。那么就写篇博客来总结一下吧,这样整体的思路才能更清楚,也能发现我不足的地方。       总体思路是:Looper源源不断的从Mes

2015-02-03 17:37:05 837

原创 设计模式入门-观察者模式(二)

今天有空,来解决一下所写的上一篇《观察者模式》中残留的问题。前续的文章地址是 《观察者模式》      在上一篇文章中,自己定义观察者模式中的主题接口,观察者接口,然后通过实现该主题接口得到了WeatherData类,通过实现观察者接口得到三个观察者(布告板):当前天气CurrentConditionDisplay,天气统计StatisticsDiaplay,预告天气ForecastDispl

2015-02-02 19:06:56 389

原创 Android DOM解析XML方法及优化

在Android应用开发中,我们常常要在应用启动后从服务器下载一些配置文件,这些配置文件包含一些项目中可能用到的资源,这些文件很多情况下是XML文件,这时就要将XML下载到文件中保存,之后再解析XML。解析XML的方法有DOM, SAX, JDOM, DOM4J,本文中只使用了DOM,下面先介绍DOM的基础知识和解析XML的方法,然后再结合一个项目实例来实现从XML文件的下载到解析整个过程。

2015-01-30 13:41:50 667

原创 Android windowSoftInputMode软键盘显示和隐藏的监听和实现

现在在公司,其实今天不用加班,但留下来写篇博客。今天做了一个关于聊天输入框和表情框的Demo,主要是为了使用软件盘的显示和隐藏。下面是效果图,(只是为了弄清原理,界面比较丑)                                    蓝色区域是输入框,获得焦点后弹出软键盘,右侧的表情按钮点击后下方会弹出表情窗口。那么弹出软键盘是什么样呢?可以看上方的图片

2015-01-27 18:52:32 2752 1

原创 设计模式入门-观察者模式

观察者模式 定义了对象之间的一对多依赖,当一个对象发生改变时,它所有的依赖者就会搜到通知,并自动更新。

2015-01-24 17:22:42 596

空空如也

空空如也

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

TA关注的人

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