- 博客(47)
- 资源 (3)
- 收藏
- 关注
转载 onConfigurationChanged未被调用的原因
今天碰到一个奇怪的问题。onConfigurationChanged未被调用。根据正常认知,在AndroidManifest.xml中设置android:configChanges="orientation“,然后在Java代码中重写onConfigurationChanged,即不会重复Activity生命周期,而是调用onConfigurationChanged。然而今天这
2015-11-27 19:32:27
415
原创 Android群英传
第一章1.每个APP都会分配Dalvik虚拟机来保证互相之间不受干扰,并保持独立。它的特点是在运行时编译。而5.x版本开始,ART模式已经取代了Dalvik,它采用的是安装时编译,以后运行就不用编译了。2.Standard libraries 标准库3.Context:当前对象在程序中所处的一个环境,一个与系统交互的过程。会在如下几个时间点创建应用的上下文:1.创建Application 2.创建A
2015-11-17 19:05:24
430
原创 ScrollView分屏显示
ScrollView分屏显示首先创建三个ViewController用来装载三个ImageView,然后引用到当前控制器的三个UIView中来,再add到ScrolView中。- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically f
2015-11-14 11:44:45
474
转载 Android listview addHeaderView 和 addFooterView 详解
Android listview addHeaderView 和 addFooterView 详解
2015-06-30 17:35:28
375
原创 Java中System.gc()和Runtime.getRuntime().gc()
(1) GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。(2) 对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图
2015-06-19 14:01:09
6635
原创 在android中 TextUtils.isEmpty()和equals()方法的用法
仔细读官方的API: Returns true if the string is null or 0-length. 因为你从EditText返回的是一个变量。如果这个变量本身为null值,那么你掉它的equals方法是要报错的。但是如果你调用TextUtils.isEmpty() 把这个变量作为参数传进去。只要这个参数为空或者为“”,都会返回真。所以,用官方给的更加严谨。而且。也十分方便。因为
2015-06-18 17:00:25
1683
原创 Git过滤文件和文夹
第一步:添加”.gitignore”文件 往项目根目录添加一个文件”.gitignore”。这文件和”.git”文件夹同级。 但是在windows下无法创建”.gitignore”文件名,必须把文件名改成这样”.gitignore.”, 在文件名最后加一个英文句号就可以了。 第二步:设置过滤条件bin/ 过滤所有bin文件夹obj/ 过滤所有obj文件夹ValorNAV_deploy/
2015-06-16 15:48:51
682
原创 Activity的启动模式(LunchMode)
Activity有四中启动模式,通过与Intent协同合作来达到想要的效果:四中启动模式分别是:standard, singleTop, singleTask, singleInstance.其中又可以分为两类:“standard”和“singleTop”是一类:可以被实例化多次。这些实例可以属于任何task并可以位于activity栈的任何位置。“singleTask”和“s
2015-05-13 15:22:39
618
原创 Android透明状态栏
Android透明状态栏只有在4.4之后有。其中设置有两种方式:1. if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { //透明状态栏 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT
2015-05-13 14:47:30
506
原创 设计模式五:建造者模式
建造者模式又称为生成器模式,它是一种较为复杂、使用频率也相对较低的创建型模式。建造者模式为客户端返回的不是一个简单的产品,而是一个由多个部件组成的复杂产品。建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式。//Actor角色类:复杂产品,考虑到代码的可读性,只列出部分成员属性,且成员属性的
2015-05-12 16:20:57
520
原创 设计模式四:模板方法模式
模板方法模式:定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。Template Method Pattern: Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Me
2015-05-12 15:44:27
487
原创 设计模式三:抽象工厂模式
抽象工厂模式为创建一组对象提供了一种解决方案。与工厂方法模式相比,抽象工厂模式中的具体工厂不只是创建一种产品,它负责创建一族产品。抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,它是一种对象创建型模式。在抽象工厂模式结构图中包含如下几个角色: ● Abstra
2015-05-12 15:07:00
510
原创 环信UI开源Demo情景分析十二、聊天界面(四)
在这一章咱们来分析一下聊天界面中消息的显示,MessageAdapter。 public MessageAdapter(Context context, String username, int chatType) { this.username = username; this.context = context; inflater = LayoutInflater.from(c
2015-04-30 14:57:54
1633
原创 Xcode 6.3.1以及Xcode 6.4百度网盘极速下载
苹果的Mac Store下载Xcode速度无法忍受,挂VPN都无法下载。分享一下Xcode 6.3.1以及Xcode 6.4的百度网盘地址Xcode 6.3.1下载:http://pan.baidu.com/s/1i3H2gYTXcode 6.4下载:http://pan.baidu.com/s/1gdrNIH9
2015-04-29 11:23:14
779
原创 环信UI开源Demo情景分析十一、聊天界面(三)
前面两章已经了解了大部分功能,不过还有一些东西没有讲到,接下来咱们就继续将剩下的部分讲完。 @Override protected void onDestroy() { super.onDestroy(); activityInstance = null; EMGroupManager.getInstance().removeGroupChangeListener(groupLi
2015-04-29 10:11:33
1063
原创 环信UI开源Demo情景分析十、聊天界面(二)
上一章说到了转发消息用户列表界面ForwardMessageActivity,这一章我们接着连看这个功能实现。 <activity android:name=".activity.ForwardMessageActivity" android:screenOrientation="portrait" andr
2015-04-28 11:08:31
1372
原创 环信UI开源Demo情景分析九、聊天界面(一)
从会话列表点击一个会话进入聊天界面,现在咱们先来看看聊天界面的清单配置。 <activity android:name=".activity.ChatActivity" android:launchMode="singleTop" android:screenOrientation="por
2015-04-27 14:37:18
1921
原创 环信UI开源Demo情景分析八、会话界面(补充)
在介绍会话界面的时候忘记了一部分内容,关于会话列表的显示。ChatAllHistoryAdapter。
2015-04-27 10:33:28
1370
原创 环信UI开源Demo情景分析七、会话界面
在会话界面中,主要是对会话记录的操作。就跟QQ上面的一样,最左边的一个Tab。管理会话历史,并动态显示消息数量。因为整个会话界面是由Fragment所组成,所以没有清单文件。接下来咱们先来看看布局文件的构成。<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout
2015-04-27 09:15:01
1363
原创 环信UI开源Demo情景分析六、主界面
终于来到正题了,这个应用最核心的地方,老规矩,先来看看清单里面的配置: <activity android:name=".activity.MainActivity" android:launchMode="singleTask" android:screenOrientation="p
2015-04-24 15:22:22
2465
原创 环信UI开源Demo情景分析五、注册界面
注册界面比较简单,一个账号,两个密码,一个按钮。 <activity android:name=".activity.RegisterActivity" android:screenOrientation="portrait" android:theme="@style/horizont
2015-04-24 10:17:48
931
原创 环信UI开源Demo情景分析四、登陆界面
接下来咱们来分析下登录界面,根据清单文件的配置不难发现接下来的Activity基本都是竖屏显示,以及与启动界面一样的动画: <activity android:name=".activity.LoginActivity" android:screenOrientation="portrait"
2015-04-24 08:36:15
1805
原创 环信UI开源Demo情景分析三、启动界面
在分析启动界面SplashActivity前,先来看看清单文件中对这个界面的设置: <activity android:name=".activity.SplashActivity" android:screenOrientation="portrait" android:theme="@style/h
2015-04-23 17:04:12
1535
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人