04 2013 档案
摘要:前几天看到java的动态代理机制,不知道是啥玩意,然后看了看。死活不知道invoke(Object proxy, Method m, Object[] args)种的proxy是个什么东西,放在这里有什么用?于是网上到处搜刮,把自己的理解写了写。/** * 相亲接口 * * @author zhengt * @time Jun 3, 2095 3:13:03 PM */public interface XiangQinInterface { /** * 相亲方法 */ public void xiangQin();}/** * 张三相亲实现类 * * @auth...
阅读全文
摘要:问题:UI设计师的视觉设计工作中,一半是效果设计,另外一半是切图切图再切图,调整调整再调整的过程。在给与视觉资源的时候,往往会碰到这样的问题:比如有个公共的title bar重新修改后,需要跟负责每个模块的开发人员都通知一遍;再比如有个列表项的字号或色值重新定义后,需要去查看是否还有同类型的其他页面的列表项也要跟着改过来。重复的劳动工作不仅浪费时间,也显得你和开发人员没有一点默契可言。举个例子,如下,tab bar的样式和每个标题的颜色和字号需要重新设计调整,而同时有三个开发人员会用到tabbar资源,以及统一的字号颜色。设计师当然要保证同功能的bar都保持一样,但代价就是将改动说明重复三遍:
阅读全文
摘要:一:TextView组件改变部分文字的颜色:1.TextView textView = (TextView)findViewById(R.id.textview); 2. 3.//方法一: 4.textView.setText(Html.fromHtml("<font color=\"#ff0000\">红色</font>其它颜色")); 5. 6.//方法二: 7. String text = "获得银宝箱!"; 8. SpannableStringBuilder style=new SpannableStr
阅读全文
摘要:作用:1、对于一个没有被载入或者想要动态载入的界面, 都需要使用inflate来载入.2、对于一个已经载入的Activity, 就可以使用实现了这个Activiyt的的findViewById方法来获得其中的界面元素.方法:Android里面想要创建一个画面的时候, 初学一般都是新建一个类, 继承Activity基类, 然后在onCreate里面使用setContentView方法来载入一个在xml里定义好的界面.其实在Activity里面就使用了LayoutInflater来载入界面, 通过getSystemService(Context.LAYOUT_INFLATER_SERVICE)方法
阅读全文
摘要:(1) Looper类别用来为一个线程开启一个消息循环。默认情况下Android中新诞生的线程是没有开启消息循环的。(主线程除外,主线程系统会自动为其创建Looper对象,开启消息循环)Looper对象通过MessageQueue来存放消息和事件。一个线程只能有一个Looper,对应一个MessageQueue。(2) 通常是通过Handler对象来与Looper交互的。Handler可看做是Looper的一个接口,用来向指定的Looper发送消息及定义处理方法。默认情况下Handler会与其被定义时所在线程的Looper绑定,比如,在主线程中定义,其是与主线程的Looper绑定。mainHa
阅读全文
摘要:写博客是一种快乐,前提是你有所写,与人分享,是另一种快乐,前提是你有舞台展示,博客园就是这样的舞台。这篇文章是android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用。1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。2.签名的步骤 a.创建key b.使用步骤a中产生的key对apk签名3.具体操作 方法一:命令行下对apk签名(原理) 创建key,需要用到k...
阅读全文
摘要:做人要大度,海纳百川,做事要圆滑,左右逢源,这让我想到了编程也是如此,代码要扩展,界面也要考虑自适应。这篇文章是android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用。1.背景自适应且不失真问题的存在 制作自适应背景图片是UI开发的一个广泛问题,也是界面设计师渴望解决的问题,我相信我们彼此都深有体会。 比如,列表的背景图一定,但是列表的高度随着列表数据项会发生变化;标题栏的背景,无论横屏还是竖屏,高分辨率还是低分辨率,都能自动填充满,而且不失真等等背景问题。 根据以往的经验,我们一般采用先切图后拼凑的做法,这种做法本来我想在这里和大家介绍一下,其实有的时候还是很...
阅读全文
摘要:配置AndroidManifest.xml中的权限添加:<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />注:这是Android的安全机制.调用到ConnectivityManager类public void testConnectivityManager() { ConnectivityManager connManager = (ConnectivityManager) this ...
阅读全文
摘要:1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次 2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次 3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法转: http://1028826685.i
阅读全文
摘要:aunchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应的task。Activity一共有以下四种launchMode:1.standard2.singleTop3.singleTask4.singleInstance我们可以在AndroidManifest.xml配置<activity>的andro
阅读全文
摘要:在Android开发中经常会碰到当用户通过菜单操作重新回到之前的某个Activity的时候,希望该Activity能回到之前的状态,而不是重新创建一遍,比如常用的main Activity。这个时候就需要用到launchMode的单任务属性了在android中activity的管理是用堆栈的方式。当启动一个新的activity时,此activity就被push到栈顶并获得焦点,旧栈顶的activity仍然存在,但是已经stop。当用户按下back键时,将栈顶的activity pop掉。此时新栈顶的activity resume。单任务的activity如下方法进行创建1、需要在Manifes
阅读全文
摘要:最近在做android项目的时候遇到一个问题,应用程序初始化时需要批量的向sqlite中插入大量数,导致应用启动过慢。android使用的是sqlite数据库,sqlite是比较轻量级的数据库,在Google了之后发现,sqlite事务处理的问题,在sqlite插入数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操作。我的应用初始5000条记录也就是要5000次读写磁盘操作。解决方法:添加事务处理,把5000条插入作为一个事务dataBase.beginTransaction();//手动设置开始事务//数据插入操作循环dataBase.setTransactionSuccess
阅读全文
摘要:sqlite3支持的数据类型:NULL、INTEGER、REAL、TEXT、BLOB但是,sqlite3也支持如下的数据类型smallint 16位整数integer 32位整数decimal(p,s) p是精确值,s是小数位数float 32位实数double 64位实数char(n)n长度字符串,不能超过254varchar(n) 长度不固定最大字符串长度为n,n不超过4000graphic(n) 和 char(n) 一样,但是单位是两个字符double-bytes,n不超过127(中文字)vargraphic(n) 可变长度且最大长度为ndate 包含了年份、月份、日期time 包含了小
阅读全文
摘要:在android的sqlite中存取DATETIME类型的方法。 创建表时:String sql="create table tb3(idINTEGER PRIMARY KEY,timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, weight DOUBLE)"; timestamp字段缺省值是当前时间(基于GMT而不是local time)。这问题导致了记录的时间跟本地实际时间有几个小时的差距,费了我好大工夫才找到解决方法: 存的时候不变,取的时候根据自己所在时区调整时间。这是sqlite中的一个函数datetime所做的工作。读取时
阅读全文
摘要:1、EditText输入的文字为密码形式的设置(1)通过.xml里设置:把该EditText设为:android:password="true"// 以”.”形式显示文本(2)在代码里设置:通过设置EditText的setTransformationMethod()方法来实现隐藏密码或这显示密码。editText.setTransformationMethod(PasswordTransformationMethod.getInstance());//设置密码为不可见。2、(1)EditText输入的文字为电话号码Android:phoneNumber=”true”//输入
阅读全文
摘要:只说明一下用法:建立一个drawable的XML文件,当然放在drawable文件夹下,比如保存文件为bg_list_item.xml输入以下代码:<?xml version="1.0" encoding="UTF-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_window_focused="false" android:state_select
阅读全文
摘要:android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解。一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP当屏幕中包含一个ViewGroup,而这个ViewGroup又包含一个子view,这个时候android系统如何处理Touch事件呢?到底是ViewGroup来处理Touch事件,还是子view来处理Touch事件呢?我只能很肯定的对你说不一定
阅读全文
摘要:onInterceptTouchEvent()是ViewGroup的一个方法,目的是在系统向该ViewGroup及其各个childView触发onTouchEvent()之前对相关事件进行一次拦截,Android这么设计的想法也很好理解,由于ViewGroup会包含若干childView,因此需要能够统一监控各种touch事件的机会,因此纯粹的不能包含子view的控件是没有这个方法的,如LinearLayout就有,TextView就没有。onInterceptTouchEvent()使用也很简单,如果在ViewGroup里覆写了该方法,那么就可以对各种touch事件加以拦截。但是如何拦截,是
阅读全文
摘要:ActivityGroup简介1.ActivityGroup的核心就是继承了该类,能够通过getLocalActivityManager()得到一个LocalActivityManager如,LocalActivityManageram= getLocalActivityManager();2.然后通过LocalActivityManager通过startActivity(String id, Intent intent),可以与指定的Actiivty绑定,并且返回一个Window。LocalActivityManager可以同时管理多个ActivityWindow window1 = am.
阅读全文
摘要:在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip)。一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致。但是在代码中,如何处理呢?很多控件的方法中都只提供了设置px的方法,例如setPadding,并没有提供设置dp的方法。这个时候,如果需要设置dp的话,就要将dp转换成px了。以下是一个应用类,方便进行px和dp之间的转换import android.content.Context; public class DensityUtil { /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */...
阅读全文
摘要:android 让一个控件按钮居于底部的几种方法1.采用linearlayout布局:android:layout_height="0dp" <!-- 这里不能设置fill_parent -->android:layout_weight="1" <!-- 这里设置layout_weight=1是最关键的,否则底部的LinearLayout无法到底部 -->2. 采用relativelayout布局:android:layout_alignParentBottom="true" <!-- 这里设置layou
阅读全文
摘要:ImageView中XML属性src和background的区别:background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸。src是图片内容(前景),bg是背景,可以同时使用。此外:scaleType只对src起作用;bg可设置透明度,比如在ImageButton中就可以用android:scaleType控制图片的缩放方式,示例代码如下:<ImageView android:id="@+id/img" android:src="@drawable/logo" android:scaleType
阅读全文
摘要:Android开发文档上专门有一小节解释这个问题。简单来说,Activity是负责与用户交互的最主要机制,任何“设置”(Configuration)的改变都可能对Activity的界面造成影响,这时系统会销毁并重建Activity以便反映新的Configuration。“屏幕方向”(orientation)是一个Configuration,通过查看Configuration类的javadoc可以看到其他Configuration还有哪些:如fontScale、keyboardHidden和locale等等。当屏幕旋转时,这个Configuration就发生了改变,因此当前显示的Activity
阅读全文

浙公网安备 33010602011771号