摘要:
本文继续讲解Panoramio的实现,主要介绍ImageAdapter.java和ImageList.java这两个文件,这两个文件实现了如下所示的界面,左图是数据从网络加载过程中,有图是加载完成后的效果: ImageAdapter继承自BaseAdapter类,实现图片适配器的功能,而ImageList则继承自ListActivity,用于以列表形式显示搜索到的图片信息。介绍之前,先来普及下DataSetObserver和DataSetObservable的知识。从名字可以依稀猜到,DataSetObserver实现了观察者模式中的观察者角色(Observer)。当数... 阅读全文
摘要:
本文介绍程序主界面的实现,对应的文件是Panoramio.java,主界面提供给用户从地图上选择搜索区域的功能,因此,直接从MapActivity继承,并实现OnClickListener接口。这样一来,这个类的初始框架如下代码所示:import com.google.android.maps.MapActivity; import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener; public class MainActivity extends MapActivi.. 阅读全文
摘要:
本文分析两个类:程序中用到的数据类PanoramioItem,以及工具类BitmapUtils。1)Parcelable接口和PanoramioItem类任何类如果希望自己的实例能够写入到Parcel中或者从Parcel中恢复出来,都必须实现Parcelable接口,实现这个接口的类除了要重写接口中定义的函数,还需要定义一个名为CREATOR的静态域,而CREATOR是实现Parcelable.Creator接口的对象,说了这么多,下面看下Parcelable的代码就一目了然了:public interface Parcelable { /** * Flag for use ... 阅读全文
摘要:
Panoramio是一个照片分享社群,网址是http://www.panoramio.com/,现在被google收购了。注册之后就可以上传自己的照片,这些照片上传后可以在卫星地图上进行定位,经过审核的照片将有可能出现在GoogleEarth上,网站的宗旨是以照片发掘全世界,网站的logo如下:本文将要学习的开源代码也叫Panoramio,它实现的功能就是根据用户在地图上选择的地点,从Panoramio上获取周边的照片并以ListView形式显示出来,用户可以选择某种照片进行查看。首先来看下程序启动后的主界面:在MapView中选择要查看的地点,点击Searchpanoramio按钮将切换到显 阅读全文
摘要:
使用ListView过程中,如果滚动加载数据的操作比较费时,很容易在滚屏时出现屏幕卡住的现象,一个解决的办法就是不要在滚动时加载数据,而是等到滚动停止后再进行数据的加载。这同样要实现OnScrollListener接口,关于该接口的简要描述见上一篇文章,这里直接进行代码的分析:package hust.iprai.asce1885; import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
impo. 阅读全文
摘要:
OnScrollListener接口是定义在AbsListView中的,而AbsListView的直接子类有GridView和ListView,非直接子类有ExpandableListView。OnScrollListener的完整路径是frameworks\base\core\java\android\widget\AbsListView.java,代码如下:/** * Interface definition for a callback to be invoked when the list or grid * has been scrolled. */
public interf... 阅读全文
摘要:
本文介绍使用TelephonyManager来获取手机SIM卡的状态和移动网络的相关信息,主要使用了TelephonyManager.listen函数,这个函数源码如下:public void listen(PhoneStateListener listener, int events) { String pkgForDebug = mContext != null ? mContext.getPackageName() : "<unknown>"; try { Boolean notifyNow = (getITelephony() != null); ... 阅读全文
摘要:
在《做移动互联网App,你的测试用例足够吗》一文中,我们谈到了Android 1.5和1.6兼容性和2.0版本以后有很多不一致的地方,开发时需要单独进行处理,这会耗费开发者相当大的精力,我们在开发Android实际应用时应该如何制定App的支持策略呢? 下面我们谈谈应该如何分析来制定自己App的支持策略。1、 了解Android最新版本分布情况 在Android developer上的资源页面里,Google会提供最新的Android版本分布情况。例如下面是最近2月1日的数据。从中可以了解到Android 1.5的分布比例为0.6%,而Android 1.6的分布比例为1.0%... 阅读全文
摘要:
Java.lang.Comparable接口中唯一的方法是compareTo(),在该方法中可以进行简单的相等比较以及执行顺序比较,接口实现框架如下:public class ComparableImpl implements Comparable<ComparableImpl> { @Override public int compareTo(ComparableImpl o) { // TODO Auto-generated method stub return 0; } }一个类实现了Comparable接口,则说明它的实例具有内在的排序关系,就可以跟多种泛型算法以及依... 阅读全文
摘要:
Java中数据类型可分为两大类:引用类型(reference)和基本类型(primitive)。1)基本类型基本类型有8种:boolean、char、byte、short、int、long、float、double。它们都有相应的包装类,这些包装类都属于引用类型,它们依次是:Boolean、Character、Byte、Short、Integer、Long、Float、Double。2)引用类型所有Java对象都是通过对象引用(ObjectReferences)进行访问的,类似于C++中的指针,这个引用指向堆heap中的某块区域,实际的对象存在于heap中。例如,声明如下代码:intprim= 阅读全文