10 2013 档案
摘要:Android是用Java开发,其静态变量的生命周期遵守Java的设计。我们知道静态变量是在类被load的时候分配内存的,并且存在于方法区。当类 被卸载的时候,静态变量被销毁。在PC机的客户端程序中,一个类被加载和卸载,可简单的等同于jvm进程的启动和结束。那么在Android中呢?用的 Dalvik vm也是一样的。不过Android不太突出的进程概念,所以对静态变量的生命周期就会感觉模糊,这种模糊对于值类型是无所谓的,如果是静态的对象引用, 则与内存回收、内存泄漏这些问题有关,有必要加深研究和理解。一、静态变量在类被加载的时候分配内存。类在什么时候被加载?当我们启动一个app的时候,系统会
阅读全文
摘要:示例demomain.xml布局代码: 1 5 6 11 12 gridview的布局代码 1 2 7 8 15 16 17 18 gridview渐变色背景 1 2 4 5 9 10 11 item布局 1 2 6 7 13 14 22 23 Acitivity代码: 1 package com.android.hzy.popupwindow; 2 3 import android.app.Activity; 4 import android.graphics.drawable....
阅读全文
摘要:方法一(这种方法可以处理popupwindows dimiss的时候一些其他的操作,比如让其他控件的隐藏,消失等):代码如下popupWindow.setFocusable(false);//focusable要为false(不设置默认的就是False);//这是Activity 的OnTouchEvent。OnTouchEvent代表的是Activity 获得事件(即为PopupWindow之外)@Overridepublic boolean onTouchEvent(MotionEvent event) {// TODO Auto-generated method stubif (popu
阅读全文
摘要:1. ListView的OnItemClickListener不被触发的另外一种情况如上图,在一个ItemView中,只有一个TextView位于最左侧,他的右侧是空白区域,没有任何控件,当点击右侧区域时,并不会触发OnItemClickListener,当点击TextView所在的区域时,就能触发这个事件。看看这个事件的执行流程右侧空白的部分没有View控件,也就是说虽然用手指点击了这一部分,但是没有view获取焦点,Android的事件触发是从顶层view一层层往下寻找的,如果有view获取焦点,就交给这个view处理,如果没有,就交给activity处理。click事件与touch事件的
阅读全文
摘要:安装了最新的ATD 18之后,新加的Lint Warnings插件会给我们检测出许多xml布局中不当的地方,例如:Use a layout_width of 0dip instead of fill_parent for better performance什么意思呢?举个简单的例子:这是一个垂直布局,上下的线性布局各占高度50.0dp,中间的的TextView设置了android:layout_weight="1.0"属性,会将剩余空间填充满,这时候TextView的android:layout_width="fill_parent"就没有用了,应该改
阅读全文
摘要:需要确定组件在父窗体中的坐标时,使用getLocationInWindow,需要获得组件在整个屏幕的坐标时,使用getLocationOnScreen。其中location [0]代表x坐标,location [1]代表y坐标。1 int[] location = new int[2] ;2 3 /**获取在当前窗口内的绝对坐标,getLeft , getTop, getBottom, getRight, 这一组是获取相对在它父窗口里的坐标。*/4 view.getLocationInWindow(location); 5 //获取在整个屏幕内的绝对坐标,注意这个值是要从屏幕顶端算起,也就..
阅读全文
摘要:尊重原创作者,转载请注明出处:http://blog.csdn.net/gemmem/article/details/7321910 Scroller这个类理解起来有一定的困难,刚开始接触Scroller类的程序员可能无法理解Scroller和View系统是怎么样联系起来的。我经过自己的学习和实践,对Scroller的用法和工作原理有了一定的理解,在这里和大家分享一下,希望大家多多指教。 首先从源码开始分析:View.java[java]view plaincopy/***CalledbyaparenttorequestthatachildupdateitsvaluesformScrollX*
阅读全文
摘要:写了这么一段代码:eclipse提示:This tag and its children can be replaced by one and a compound drawable最后发现原来可以直接给TextView加图片.. ,通过setCompoundDrawable 方法, 或者直接在xml中使用android:drawableLeft.、android:drawableRight等属性指定!
阅读全文
摘要:关于Activity生命周期的文章很多,而且大部分也说得很详细,所以作为关于这方面的内容我本来不想多说,但是大家可能跟我之前一样,在看这方面的内容的时候都能很容易地看懂,但是过几天又忘了,或者在用的程序中跳转较多的情况下容易混淆。这是因为没有真正的理解,或者是没有很好的方法来记忆,所以在这里我就说一下我对Activity生命周期的一些记忆的方式,希望对大家能够有所帮助。Activity生命周期的基本内容我就不多说了,网上一搜一大把,官方文档也说得很详细。总之,我们知道Activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,这些回调方法包括:onCreate 、on
阅读全文
摘要:看图先: 页面中填充内容是随机关键词飞入和飞出动画效果,随后会更新,现在请先无视吧首先是 导入jar包 下载地址:android-support-v4.jar布局文件里添加viewPager布局[html] view plaincopyprint?再创建两个item布局用于填充在ViewPager里然后就是Activity了,主要写了左右滑动切换页面,还有一个小图片随页面切换 位移的动画效果[java] view plaincopyprint?publicclassSearchAllcityActivityextendsActivity{privateKeywordsFlowkeywo...
阅读全文
摘要:实现并封装一个SQL分页表格控件,不仅支持分页还是以表格的形式展示数据。先来看看本文程序运行的动画: 这个SQL分页表格控件主要分为“表格区”和“分页栏”这两部分,这两部分都是基于GridView实现的。网上介绍Android上实现表格的DEMO一般都用ListView。ListView与GridView对比,ListView最大的优势是格单元的大小可以自定义,可以某单元长某单元短,但是难于实现自适应数据表的结构;而GridView最大的优势就是自适应数据表的结构,但是格单元统一大小。。。对于数据表结构多变的情况,建议使用GridView实现表格。 本文实现的SQL分页表格控件有以下特点...
阅读全文
摘要:本文重点讲述了自android4.0版本后新增的GridLayout网格布局的一些基本内容,并在此基础上实现了一个简单的计算器布局框架。通过本文,您可以了解到一些android UI开发的新特性,并能够实现相关应用。 在android4.0版本之前,如果想要达到网格布局的效果,首先可以考虑使用最常见的LinearLayout布局,但是这样的排布会产生如下几点问题:1、不能同时在X,Y轴方向上进行控件的对齐。2、当多层布局嵌套时会有性能问题。3、不能稳定地支持一些支持自由编辑布局的工具。 其次考虑使用表格布局TabelLayout,这种方式会把包含的元素以行和列的形式进行排列,每行为一个Ta..
阅读全文
摘要:android UI 往右滑动,滑动到最后一页就自动加载数据并显示如图:Java代码 packagecn.anycall.ju;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importandroid.app.Activity;importandroid.content.ActivityNotFoundException;importandroid.content.Context;importandroid.content.Intent;importandro
阅读全文
摘要:TableLayout特点: 1)TableLayout和我们平时在网页上见到的Table有所不同,TableLayout没有边框的 2)它是由多个TableRow对象组成,每个TableRow可以有0个或多个单元格,每个单元格就是一个View。这些TableRow,单元格不能设置layout_width,宽度默认是fill_parent的,只有高度layout_height可以自定义,默认是wrap_content。 3)单元格可以为empty,并且通过android:layout_column可以设置index值实现跳开某些单元格。在TableRow之间 4)添加View,设置layout
阅读全文
摘要:一、基本思路:冒泡排序是一种简单的交换类排序。其基本思路是,从头开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将关键字值大的元素后移。每经过 一趟排序后,关键字值最大的元素将移到末尾,此时记下该元素的位置,下一趟排序只需要比较到此位置为止,直到所有元素都已有序排列。一般地,对n个元素进行冒泡排序,总共需要进行n-1趟。第1趟需要比较n-1次,第2趟需要比较n-2次,......第i趟需要比较n-i次。二、算法实现public class BubbleSort{ public static void main(String args[]){ int[] values={3,1,6,2
阅读全文
摘要:先来一个: 取得指定月份的第一天与取得指定月份的最后一天 http://iamin.blogdriver.com/iamin/847990.html/***取得指定月份的第一天**@paramstrdateString*@returnString*/publicStringgetMonthBegin(Stringstrdate){java.util.Datedate=parseFormatDate(strdate);returnformatDateByFormat(date,"yyyy-MM")+"-01";}/***取得指定月份的最后一天**@para
阅读全文
摘要:import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class DateUtil { public static void main(String[] args) { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String specifiedDay = sdf.fo
阅读全文
摘要:利用getLayoutParams()方法和setLayoutParams()方法。三步曲:1、首先利用getLayoutParams()方法,获取控件的LayoutParams。eg:LayoutParams laParams=(LayoutParams)imageView.getLayoutParams();2、设置该控件的layoutParams参数eg:laParams.height=200; laParams.width=100;3、将修改好的layoutParams设置为该控件的layoutParams.eg:imageView.setLayoutParams(laParams);
阅读全文
摘要:Android设备屏幕的尺寸是各式各样的,如小米是4英寸的,Xoom平板是10英寸;分辨率也千奇百怪,800×480,960×540等;Android版本的碎片化问题更是萦绕于心,不过在设计应用时可以分为两大块:3.0之前的版本和3.0之后的版本。这种情况会带来什么问题我们用三个假设来说明一下。 1. 假设你的手上有两个4英寸的设备,设备A的分辨率是800×480,设备B的分辨率是1600×960。你在设备A上设计了一个64×64像素的图标,感觉它大小正合适,但放到设备B上的时候,这个图标看上去就只有之前一半大小了。2. 假设你手上的两个设备,
阅读全文
摘要:px:即像素,1px代表屏幕上一个物理的像素点;px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同,如下图所示。dp:这个是最常用但也最难理解的尺寸单位。它与“像素密度”密切相关,所以首先我们解释一下什么是像素密度。假设有一部手机,屏幕的物理尺寸为1.5英 寸x2英寸...
阅读全文
摘要:遇到一个问题,我的地图浮标图片在WVGA手机上正好,在QVGA上就显的太大,所以我要根据屏幕的不同调整浮标的大小使其在QVGA大小合适。有的同事提出了依据分辨率来区分不同的屏幕,但是单WVGA就支持好几种不同的分辨率,QVGA又支持好几种。。。而且更神奇的是,有时候,通过代码获取屏幕分辨率竟然得到了320 x 427,Android文档是不支持这种分辨率的,所以依据分辨率来区分不同的屏幕是行不通的。 还好通过仔细研读文档,“各种VGA的density是不同的,(hdpi: 240 , ldpi: 120 , mdpi: 160 , xhdpi: 320)”,所以只要求出不同屏幕的dens...
阅读全文