参考api:http://api.apkbus.com/reference/android/graphics/BitmapFactory.html
整理一下layout、widget view、adapter
这三种最上层的几个父类为:
java.lang.Object | |||||
↳ | android.view.View | ||||
↳ | android.view.ViewGroup |
1)layout布局主要有四种:LinearLayout 、RelativeLayout、 FrameLayout 、AbsoluteLayout(用的比较少)、还有一种TableLayout,没有说有5种布局,是因为TableLayout是LinearLayout 的子类。
2)widget 视图类主要有两种:AdapterView 与ScrowView
a)AbsListView 用于实现条目的基础类,上一层父类AdapterView,再往上父类就为ViewGroup了
直接子类ListView(水平方向条目) GridView(水平、垂直混合条目)
间接子类 ExpandableListView(可下拉条目)
本身具有滚动条
b)ScrollView,父类FrameLayout,再往上父类就为ViewGroup了
允许用户滚动的,可以放置超过物理显示器大小的视图层次的布局容器. ScrollView 是一种 FrameLayout
, 这意味着需要在其上放置一个包含整个滚动内容的 子元素。 该子元素自身也可以是一个拥有复杂对象层次的布局管理器。 常用的子元素为垂直方向的LinearLayout
, 用于呈现用户可以滚动的顶层条目的数 组。
c)AdapterView, 是内容由 Adapter
来决定的视图类,再往上父类为ViewGroup了
小结:
*分析下来,widget视图类主要还是应该分两种ScrollView 与 AdapterView两种,因为ListView GridView AbsListView等都是AdpaterView的子类。
*AdapterView内容由adapter来决定,下面就分析adapter
3)android.widget.adapter
已知间接子类
ArrayAdapter<T>,
BaseAdapter,
CursorAdapter,
HeaderViewListAdapter,
ListAdapter,
ResourceCursorAdapter,
SimpleAdapter,
SimpleCursorAdapter,
SpinnerAdapter,
WrapperListAdapter
常用的adapter:
BaseAdapter、
ArrayAdapter、SimpleAdapter、CursorAdapter这三种都是BaseAdapter的子类,BaseAdapter有个方法很重要
notifyDataSetChanged
(),该方法用于通知关联的视图,后台数据已经改变,视图需要刷新。因此不论是哪种Adapater,不论是ListView GridView (ScrollView 除外,不是AdapterView的子类)
刷新视图需要调用BaseAdapter的notifyDataSetChanged()方法更新UI界面数据内容
|
1、ScrollView里只能有一个标签,因此把所有内容包括在一个LinearLayout里
2、ScrollView AdapterView都各自能实现滚动,ScrollView 若要嵌套AdapeterView,需要自己 进行一些处理。否则会有问题