摘要: 相信对于Android的初学者来说,大家都曾经被layout里这两个极其相似的属性迷惑过。简单使用一下搜索工具,我们就不难找到下面这样的答案:layout_gravity 表示组件自身在父组件中的位置gravity 表示组件的子组件在组件中的位置看似很简单嘛为什么这么简单的道理,总有同学会发现,在“某些时候”,layout_gravity这个属性不好使了,失去了它应有的作用问题究竟出在哪里了呢?当作为父layout的LinearLayout的属性为android:orientation="vertical"的时候,android:layout_gravity="? 阅读全文
posted @ 2012-10-22 11:35 muzhi121 阅读(14532) 评论(1) 推荐(2) 编辑
摘要: 之前我讲过layout_weight的巧妙应用一http://www.cnblogs.com/xiaoQLu/archive/2011/08/08/2130328.html现在更深入讲下weight的其他应用和原理先看下图,我要用LinearLayout实现如下效果,2要自适应大小,也就是wrap_content,1要占满剩下的空间怎么办?(当然用相对布局很简单)如果我要再实现一个更变态点的需求呢,就是2位置要动态变换呢(右图所示效果),根据不同的状态,设置2位置不同控件的隐藏和显示,这种情况下,用RelativeLayout实现就有点麻烦了,你要找到一个基准控件,然后根据他来布局其他控制,如 阅读全文
posted @ 2012-09-20 15:55 muzhi121 阅读(1755) 评论(0) 推荐(0) 编辑
摘要: 本文转自http://hi.baidu.com/injava/item/aac168cd66af7a090bd93a3eHashMap的遍历效率讨论经常遇到对HashMap中的key和value值对的遍历操作,有如下两种方法:Map<String, String[]> paraMap = new HashMap<String, String[]>();................//第一个循环Set<String> appFieldDefIds = paraMap.keySet();for (String appFieldDefId : appField 阅读全文
posted @ 2012-09-04 14:37 muzhi121 阅读(3086) 评论(0) 推荐(0) 编辑
摘要: 本文转自http://jianwang0412.iteye.com/blog/1267885重写listview,通过监听滑动事件,根据滑动时所处的位置,以及滑动的方向,使用view的内置scrollTo或scrollBy函数来移动view到你手势互动的距离(此处为一半),然后当确定消费了给事件后,又回滚到(0,0)点。当然只有在超出了边界时才回滚。而且回滚的过程由TranslateAnimation来控制,这样的好处在代码的解释中。我是基于网络上的listviewpress改了一些(有几处好像是被篡改了,我又按我的理解将它改正过来,运行后没问题)。一下是关键的代码,整个代码见附件中。有不懂的 阅读全文
posted @ 2012-08-23 11:07 muzhi121 阅读(3070) 评论(1) 推荐(0) 编辑
摘要: 本文大部分参考自http://blog.csdn.net/mayingcai1987/article/details/6200909,对原文中的讲解FLAG_NEW_TASK地方加了一些自己的观点,用红色标记1. Task是包含一系列Activity的堆栈, 遵循先进后出原则.2. Task默认行为: (1)前提: Activity A和Activity B在同一个应用中.操作: Activity A启动开僻Task堆栈(堆栈状态: A), 在Activity A中启动Activity B(堆栈状态: AB), 按下BACK返回键(堆栈状态: A). (2) 前提: Activity A和Ac 阅读全文
posted @ 2012-07-17 15:30 muzhi121 阅读(101637) 评论(15) 推荐(12) 编辑
摘要: 本文转自http://developer.51cto.com/art/200906/127967.htm有关FLAG_ACTIVITY_NEW_TASK的更详细讲解请参考http://www.cnblogs.com/xiaoQLu/archive/2012/07/17/2595294.html本文向您介绍Android应用程序开发中的各个模块,包括任务、启动模式、进程和线程等在大多数操作系统里,存在独立的一个1对1的可执行文件(如Windows里的exe文件), 它可以产生进程,并能和界面图标、应用进行用户交互。但在Android里,这是不固定的,理解将这些分散的部分如何进行组合是非常重要的。 阅读全文
posted @ 2012-07-16 21:22 muzhi121 阅读(4585) 评论(0) 推荐(0) 编辑
摘要: 本文部分参考http://www.cnblogs.com/ufocdy/archive/2011/03/17/1987327.html主要是以简单的语言说明cursor和cursorAdapter的监听机制先来讲讲cursor的监听机制,给cursor加监听很简单,调用cursor.registerContentOberserver()即可,然后重写onChange()方法,这样数据库变化,就会回调onChange方法背后的监听机制是什么呢?cursor是接口,实现应该是在AbstractCursor里面,AbstractCursor有一个ContentObservable继承自Observa 阅读全文
posted @ 2012-06-30 13:00 muzhi121 阅读(5748) 评论(0) 推荐(0) 编辑
摘要: 本文转自:http://www.cnblogs.com/3dant/archive/2011/04/06/2007060.html我说下我的理解,最可能出现重复的情况就是getView(int position, View convertView, ViewGroup parent)中的conver... 阅读全文
posted @ 2012-06-18 16:41 muzhi121 阅读(28506) 评论(3) 推荐(5) 编辑
摘要: 本人引用自csdn讨论区:http://topic.csdn.net/u/20100413/11/5ebc247a-e399-4cd6-8c74-48c8036da282.htmlJava把内存划分成两种:一种是栈内存,一种是堆内存。 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。 ... 阅读全文
posted @ 2012-06-11 23:18 muzhi121 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 本文转自http://blog.csdn.net/xtyyumi301/article/details/3015493Understanding Weak References以前我招聘过高级java工程师,其中一个面试题目是“你对weak reference了解多少?”。这个话题比较偏,不指望每个人都能清楚它的细节。如果面试的人说“Umm...好像和gc(垃圾回收)有点关系?”,那我就相当满意了。实际情况却是20多个5年java开发经验的工程师只有2个知道有weak reference这么回事,其中1个是真正清楚的。我试图给他们一些提示,期望有人会恍然大悟,可惜没有。不知道为什么这个特性un 阅读全文
posted @ 2012-05-31 18:02 muzhi121 阅读(3194) 评论(2) 推荐(0) 编辑