摘要: 前面的一节,介绍了如何组合使用Gallery和ImageView。但是,有的时候当你在gallery中点击一个图片,你可能不希望一个图片“突然地”在imageview中显示出来。例如,你可能希望给某个图片设置一些切换动画。此时,就需要使用ImageSwitcher和Gallery一起使用。下面展示如何使用ImageSwitcher。1. 创建一个工程,ImageSwitcher。2. main.xml中的代码。<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andro 阅读全文
posted @ 2012-06-04 20:54 移动应用开发 阅读(462) 评论(0) 推荐(0)
摘要: // Adding a toString method to PhoneNumber import java.util.*; public final class PhoneNumber { private final short areaCode; private final short prefix; private final short lineNumber; public PhoneNumber(int areaCode, int prefix, int lineNumber) { r... 阅读全文
posted @ 2012-06-04 20:25 移动应用开发 阅读(838) 评论(0) 推荐(0)
摘要: 不覆盖equals的情况1)类的每个实例本质上是唯一的;2)不关心类是否提供了“逻辑想等”的测试功能;3)超类已经覆盖了equals,从超类继承过来的行为对于子类也是合适的;4)类是私有的或包级私有的,可以确定他的equals方法永远不会被调用。应该覆盖equals的情况如果类具有自己特有的“逻辑想等”概念,而且超类还没有覆盖equals以实现期望的行为,这时我们就需要覆盖equals方法。这通常属于“值类”的情形。equals 方法在非空对象引用上实现相等关系l自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。 l对称性:对于任何非空引用值 x 和y,当且仅当 y. 阅读全文
posted @ 2012-06-04 20:24 移动应用开发 阅读(241) 评论(0) 推荐(0)
摘要: 每个覆盖了equals方法的类中,也必须覆盖hashCode方法。如果不这样的话,就会违反Object.hashCode的通用约定,从而导致该类无法结合所有基于散列的集合一起正常运作,这样的集合包括HashMap、HashSet和Hashtable。在引用程序的执行期间,只要对象的equals方法的比较操作所用到的信息没有被修改,那么对这同一个对象调用多次,hashCode方法都必须始终如一的返回同一个整数。在一个应用程序的多次执行过程中,每次执行所返回的整数可以不一致。如果连个对象根绝equals方法比较是相等的,那么调用这两个对象中任意一个对象的hashCode方法都必须产生同样的整数结果 阅读全文
posted @ 2012-06-04 20:24 移动应用开发 阅读(272) 评论(0) 推荐(0)
摘要: 任何事情都存在其一定的双面性或者多面性,对于C++的开发者,内存资源是需要手工分配和释放的,而对于Java和C#这种资源托管的开发语言,更多的工作可以交给虚拟机的垃圾回收器来完成,由此C++程序得到了运行效率,却失去了安全。在Java的实际开发中,并非所有的资源都是可以被垃圾回收器自动释放的,如FileInputStream、Graphic2D等class中使用的底层操作系统资源句柄,并不会随着对象实例被GC回收而被释放,然而这些资源对于整个操作系统而言,都是非常重要的稀缺资源,更多的资源句柄泄露将会导致整个操作系统及其运行的各种服务程序的运行效率直线下降。那么如何保证系统资源不会被泄露了?在 阅读全文
posted @ 2012-06-04 20:23 移动应用开发 阅读(182) 评论(0) 推荐(0)
摘要: 在官方blog中,android工程师谈到了如何去选择apache client和httpurlconnection的问题: 原文见http://android-developers.blogspot.com/2011/09/androids-http-clients.html这里小结下几点。1) apache httpclient比较稳定点,少BUG,但由于API的关系,扩展改造麻烦点,所以android team现在不鸟这东西了基本2) httpurlconnection比较轻便,灵活,易于扩展,在2。2前有个BUG,见http://code.google.com/p/android/i. 阅读全文
posted @ 2012-06-04 18:02 移动应用开发 阅读(684) 评论(0) 推荐(0)
摘要: 表1展示了Android SDK中的一些与网络有关的API包名表1. Android SDK 网络包包 描述 API LevelJava.net 提供与联网有关的类,包括流和数据包(datagram)sockets、Internet 协议和常见 HTTP 处理。该包是一个多功能网络资源。有经验的 Java 开发人员可以立即使用这个熟悉的包创建应用程序。 1java.io 虽然没有提供显式的联网功能,但是仍然非常重要。该包中的类由其他 Java 包中提供的 socket 和连接使用。它们还用于与本地文件(在与... 阅读全文
posted @ 2012-06-04 18:00 移动应用开发 阅读(703) 评论(0) 推荐(0)
摘要: Android面试题1. 下列哪些语句关于内存回收的说明是正确的? (b )A、 程序员必须创建一个线程来释放内存B、 内存回收程序负责释放无用内存C、 内存回收程序允许程序员直接释放内存D、 内存回收程序可以在指定的时间释放内存对象2. 下面异常是属于Runtime Exception 的是(abcd)(多选) A、ArithmeticException B、IllegalArgumentException C、NullPointerException D、BufferUnderflowException3. Math.round(11.5)等于多少(). Math.roun... 阅读全文
posted @ 2012-06-04 15:17 移动应用开发 阅读(664) 评论(0) 推荐(0)
摘要: Html页面和Java代码结合的方式一般用在界面经常被更改 的情况下,可以讲html放在网络中,软件一打开就会访问网络获取到最新的界面。缺点是会受到网络信号的影响,从而导致访问速度慢。1.用WebView来显示HTML代码2.允许WebView执行JavaScript webView.getSettings().setJavaScriptEnabled(true);3.获取到HTML文件,也可从网络中获取 webView.loadUrl("file:///android_asset/index.html"); //HTML文件存放在assets文件夹中4.添加一个对象, 让 阅读全文
posted @ 2012-06-04 15:12 移动应用开发 阅读(431) 评论(0) 推荐(0)
摘要: 首先,说一下SQLite的概念:SQLite 是一个开源的嵌入式关系数据库,它可以减少应用程序管理数据的开销 , SQLite 可移植性好 、 很容易使用 、 很小 、 高效而且可靠 。目前在Android 系统中集成的是 SQLite3 版本 ,SQLite 不支持静态数据类型 , 而是使用列关系 。 这意味着它的数据类型不具有表列属性 , 而具有数据本身的属性 。 当某个值插入数据库时, SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成列类型。如果不能转换,则该值将作为其本身具有的类型存储。SQLite 支持 NULL 、INTEGER 、 R 阅读全文
posted @ 2012-06-04 15:01 移动应用开发 阅读(1076) 评论(0) 推荐(0)
摘要: 经过了一番折腾,忙忙碌碌了一下午,终于搞明白了Android软件界面嵌入广告的方法,以下我以嵌入有米广告为例小结一下:步骤一,下载有米广告SDK,将 youmi-android.jar 导入想要嵌入广告的的工程中。1. 右键您的工程根目录,选择“Properties”2. 在左面板中选择“Java Build Path”3. 然后选择“Libraries”标签4. 点击“Add External JARs„”5. 选择 youmi-android.jar 的目录路径.6. 点击“OK”即导入成功步骤二,在AndroidManifest.xml文件中配置用户权限。请务必配置以下权限,否则将有可能 阅读全文
posted @ 2012-06-04 14:58 移动应用开发 阅读(459) 评论(0) 推荐(0)
摘要: 在一个项目中,常常需要频繁的分页,所以有必要实现一个封装的类来统一管理实现。首先看下效果图:从上图我们可以看出,这里是将listview中的数据通过底下的分页工具实现分页显示。那我们接下来先贴出代码:1、实现布局,这里有两个布局文件,第一个主布局文件main.xml<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/whole_region"android:layout_width="fill_parent&qu 阅读全文
posted @ 2012-06-04 14:56 移动应用开发 阅读(2243) 评论(1) 推荐(0)
摘要: 今天和同事共同讨论了一个关于WebView中的文本控件去获得系统联系人的功能,之前单纯的以为只是点击文本框的时候弹出系统联系人Activity就ok了。立马浮现的想法就是在java方法中实现跳转功能,然后通过Js事件调用java方法,后面才知道选中某个联系人之后还要获得联系人号码赋给文本框。当时我就单纯的以为应该实现不了吧,但后来同事一提醒,如果传递号码作为客户端页面一个Js事件的参数然后为文本框赋值的话咧。这样确实是可行的,但java调用客户端Js的方法入口在哪里咧(必须是在关闭系统联系人之后,重现展现含有WebView的Activty时调用),说到这里应该有部分人会想到一个方法:onAct 阅读全文
posted @ 2012-06-04 13:34 移动应用开发 阅读(1491) 评论(0) 推荐(0)
摘要: 这阵子在做Lephone的适配,测试组提交一个bug:标题栏的文字较长时没有显示完全,其实这并不能算个bug,并且这个问题在以前其他机器也没有出现,只是说在Lephone的这个平台上显示得不怎么美观,因为联想将原生的标题栏UI进行了修改。修改的过程中遇到了一个难题,系统自带的那个标题栏进度总能够到达100%后渐退,但是我每次最后到100%那一段显示不全,尝试了用线程程序死了卡主了不说,还是一样的效果,后来同事一句话提醒了我用动画。确实是这样我猜系统的也是这样实现的,等进度到达100%后,用动画改变它的透明度就ok了。实现的效果:标题栏显示网页标题并且滚动,并且用进度条显示网页的加载进度(重新. 阅读全文
posted @ 2012-06-04 13:04 移动应用开发 阅读(205) 评论(0) 推荐(0)
摘要: 1. 使用envsetup.sh脚本初始化编译环境$ source build/envsetup.sh也可以使用'.'去替换source,这样可以少输入几个字符:$ . build/envsetup.sh2. 选择目标平台选择目标平台使用lunch命令,输入lunch命令时可以指定平台,如果你没有指定平台,稍候会出现一个平台列表,你可以选择其中一个。$ lunch full-eng3. 编译选择好平台之后,你就可以编译了。$ make -j4GNU Make支持并行编译处理,在多核处理器下,加上-j参数能明显加快编译速度。本文参考来自android官网:http://sourc 阅读全文
posted @ 2012-06-04 12:33 移动应用开发 阅读(198) 评论(0) 推荐(0)
摘要: 在Android中显示网页主要有两种方式,一种是在Activity里面直接显示网页,另一种是调用浏览器显示网页。方式不同,使用的方法也不同,下面我们分别讲解。(一)在Activity里面直接显示网页1.在Manifest.xml文件里添加Inter网访问权限:<uses-permissionandroid:name="android.permission.INTERNET"></uses-permission>2.在main.xml布局文件里声明一个WebView空间<WebView android:id="@+id/webView0 阅读全文
posted @ 2012-06-04 12:20 移动应用开发 阅读(7426) 评论(0) 推荐(0)
摘要: 本文将介绍如何下载android源码树1. 安装RepoRepo它对git命令做了一些封装,让git更容易使用,要安装,初始化和配置Repo,需要如下几步:(1)在你的home目录下创建bin目录:$ mkdir ~/bin $ PATH=~/bin:$PATH(2)下载Repo脚本并且确保它可执行:$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo $ chmod a+x ~/bin/repo2. 初始化一个Repo客户端Repo安装完成后,你现在就可以使用它来下载android源代码了 阅读全文
posted @ 2012-06-04 11:08 移动应用开发 阅读(358) 评论(0) 推荐(0)
摘要: 官方推荐ubuntu版本是64位的Ubuntu LTS (10.04)一、建立Android基本开发环境在Linux中建立Android开发环境,通常你需要一下几样东西:Python 2.5 -- 2.7GNU Make 3.8.1 -- 3.8.2Gingerbread或以后的版本需要安装JDK6,Froyo或更老版本安装JDK5就可以了。Git 1.7或以上版本详细步骤如下:1. 安装JDKJDK6:$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" $ sudo apt 阅读全文
posted @ 2012-06-04 10:44 移动应用开发 阅读(892) 评论(0) 推荐(0)
摘要: 最近要在mac上开发ios程序,所以买了台mac book.今天在上面用我的希捷移动硬盘的时候发先,挂载上去是只读的。到网上找了半天的试过各种的方式都加载不上去,我没有用第三方的软件。后来看了看移动硬盘发现里面又希捷带的软件。里面就带了ntfs的驱动。装完重启就好了。 阅读全文
posted @ 2012-06-04 10:37 移动应用开发 阅读(171) 评论(0) 推荐(0)
摘要: 注:本文译自:http://developer.android.com/guide/topics/graphics/2d-graphics.htmlAndroid框架API提供了一组2D描画API,使用这些API能够在一个画布(canvas)上渲染自己的定制图形,也能够修改那些既存的View对象,来定制它们的外观和视觉效果。在绘制2D图形时,通常要使用以下两种方法中的一种:1.把图形或动画绘制到布局中的一个View对象中。在这种方式中,图形的绘制是由系统通常的绘制View层次数据的过程来处理的---只需简单的定义要绘制到View对象内的图形即可。2.把图形直接绘制在一个画布对象上(Canvas 阅读全文
posted @ 2012-06-04 08:34 移动应用开发 阅读(321) 评论(0) 推荐(0)
摘要: 在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。抽空把对ListView的使用做了整理,并写了个小例子,如下图。列表的显示需要三个元素:1.ListVeiw 用来展示列表的View。2.适配器用来把数据映射到ListView上的中介。3.数据具体的将被映射的字符串,图片,或者基本组件。根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter其中以ArrayAdapter最为简单,只能展示一行字。SimpleAdapter有最好的扩充性,可以自定义出各种. 阅读全文
posted @ 2012-06-04 00:34 移动应用开发 阅读(211) 评论(0) 推荐(0)