- 浏览: 422444 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
rkikbs:
有下载地址么?
我的iOS视频开放了,欢迎大家在线观看 -
wjpiao:
支持支持!
我的iOS视频开放了,欢迎大家在线观看 -
关东升:
wwwang89 写道关老师,你好 ,请问:我的服务器端是用j ...
iOS网络编程-ASIHTTPRequest框架同步请求 -
wwwang89:
关老师,你好 ,请问:我的服务器端是用java写的,不是.ne ...
iOS网络编程-ASIHTTPRequest框架同步请求 -
关东升:
crowning_2008 写道关老师 好!你好
iOS开发那些事-关于性能优化–选择nib还是故事板的讨论
ImageSwitcher图像切换器,可以切换器图像。ImageSwitcher类的继承图如下:
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.FrameLayout
↳ android.widget.ViewAnimator
↳ android.widget.ViewSwitcher
↳ android.widget.ImageSwitcher
android.widget.ImageSwitcher继承了android.widget.FrameLayout框架布局类。为了便于学习,我们把官方的ImageSwitcher例子(ApiDemos/src/com/example/android/apis/view/ImageSwitcher1.java)做了一些修改,例子运行如图7-6屏幕,点击屏幕下面的缩图,实现图片的切换。
图7-6 ImageSwitcher
请参考代码清单7-4,完整代码请参考chapter7_1工程中MyImageSwitcher代码部分。
【代码清单7-4】
在ImageSwitcher图像切换器中需要提供缩图数组集合mThumbIds和正常图片集合mImageIds。requestWindowFeature(Window.FEATURE_NO_TITLE)方法是设置没有标题的屏幕。
实现图像切换关键代码是mSwitcher.setFactory(new ViewSwitcher.ViewFactory() {…}),需要提供一个ViewSwitcher.ViewFactory接口为图像切换的时候创建一个View对象,由于是图像切换器,这个View是一个ImageView类的实例,i.setBackgroundColor(0xFF000000)指定背景颜色,i.setScaleType(ImageView.ScaleType.FIT_CENTER)指定排列方式为居中。下面的代码就是设置图片的布局与父容器匹配模式:
i.setLayoutParams(new ImageSwitcher.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
在屏幕下面的缩图是Gallery类型,点击缩图触发事件AdapterView.OnItemSelectedListener()时改变图片切换器的图片源mSwitcher.setImageResource(mImageIds[position]),从而实现图片的切换。
缩图的Gallery还必须实现一个BaseAdapter适配器,代码请参考代码清单7-5,完整代码请参考chapter7_1工程中MyImageSwitcher代码部分。
【代码清单7-5】
getView()方法中返回缩图的对象,i.setImageResource(mThumbIds[position])是设置图片源,i.setAdjustViewBounds(true)设置图片对象边框自动调节,i.setLayoutParams()设置图片控件的布局,i.setBackgroundResource设置背景图片。
出自《Android开发案例驱动教程》第七章
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.FrameLayout
↳ android.widget.ViewAnimator
↳ android.widget.ViewSwitcher
↳ android.widget.ImageSwitcher
android.widget.ImageSwitcher继承了android.widget.FrameLayout框架布局类。为了便于学习,我们把官方的ImageSwitcher例子(ApiDemos/src/com/example/android/apis/view/ImageSwitcher1.java)做了一些修改,例子运行如图7-6屏幕,点击屏幕下面的缩图,实现图片的切换。

图7-6 ImageSwitcher
请参考代码清单7-4,完整代码请参考chapter7_1工程中MyImageSwitcher代码部分。
【代码清单7-4】
public class MyImageSwitcher extends Activity { private ImageSwitcher mSwitcher; private Integer[] mThumbIds = { R.drawable.photo1_thumb, R.drawable.photo2_thumb, R.drawable.photo3_thumb, R.drawable.photo4_thumb, R.drawable.photo5_thumb, R.drawable.photo6_thumb }; private Integer[] mImageIds = { R.drawable.photo1, R.drawable.photo2, R.drawable.photo3, R.drawable.photo4, R.drawable.photo5, R.drawable.photo6 }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.image_switcher); mSwitcher = (ImageSwitcher) findViewById(R.id.switcher); mSwitcher.setFactory(new ViewSwitcher.ViewFactory() { @Override public View makeView() { ImageView i = new ImageView(MyImageSwitcher.this); i.setBackgroundColor(0xFF000000); i.setScaleType(ImageView.ScaleType.FIT_CENTER); i.setLayoutParams(new ImageSwitcher.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); return i; } }); Gallery g = (Gallery) findViewById(R.id.gallery); g.setAdapter(new ImageAdapter(this)); g.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View v, int position, long id) { mSwitcher.setImageResource(mImageIds[position]); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); … … } … … }
在ImageSwitcher图像切换器中需要提供缩图数组集合mThumbIds和正常图片集合mImageIds。requestWindowFeature(Window.FEATURE_NO_TITLE)方法是设置没有标题的屏幕。
实现图像切换关键代码是mSwitcher.setFactory(new ViewSwitcher.ViewFactory() {…}),需要提供一个ViewSwitcher.ViewFactory接口为图像切换的时候创建一个View对象,由于是图像切换器,这个View是一个ImageView类的实例,i.setBackgroundColor(0xFF000000)指定背景颜色,i.setScaleType(ImageView.ScaleType.FIT_CENTER)指定排列方式为居中。下面的代码就是设置图片的布局与父容器匹配模式:
i.setLayoutParams(new ImageSwitcher.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
在屏幕下面的缩图是Gallery类型,点击缩图触发事件AdapterView.OnItemSelectedListener()时改变图片切换器的图片源mSwitcher.setImageResource(mImageIds[position]),从而实现图片的切换。
缩图的Gallery还必须实现一个BaseAdapter适配器,代码请参考代码清单7-5,完整代码请参考chapter7_1工程中MyImageSwitcher代码部分。
【代码清单7-5】
public class ImageAdapter extends BaseAdapter { public ImageAdapter(Context c) { mContext = c; } public int getCount() { return mThumbIds.length; } public Object getItem(int position) { return mThumbIds[position]; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ImageView i = new ImageView(mContext); i.setImageResource(mThumbIds[position]); i.setAdjustViewBounds(true); i.setLayoutParams(new Gallery.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); i.setBackgroundResource(R.drawable.picture_frame); return i; } private Context mContext; }
getView()方法中返回缩图的对象,i.setImageResource(mThumbIds[position])是设置图片源,i.setAdjustViewBounds(true)设置图片对象边框自动调节,i.setLayoutParams()设置图片控件的布局,i.setBackgroundResource设置背景图片。
出自《Android开发案例驱动教程》第七章
发表评论
-
智捷课堂改版啦!
2015-08-04 12:09 1新站上线,为庆祝网站改版,全站所有视频限时免费三天(8月5日 ... -
《Android开发案例驱动教程》之十五章云端应用整篇下载
2011-12-08 18:08 1167《Android开发案例驱动教程》15章--云端应用[colo ... -
《Android开发案例驱动教程》源码
2011-12-08 17:57 1339《Android开发案例驱动教程》15,16,17章源码 目 ... -
android中google“定位查询”
2011-08-03 15:18 1236“定位查询”locate()方法,增加一个线程,在该线程中处理 ... -
7.1.5 选项卡结合案例详解
2011-07-27 08:58 1508选项卡是通过TabHost和TabActivity一起实现的, ... -
7.1.4 ScrollView结合案例详解
2011-07-26 17:50 2151ScrollView是一个滚动条控件,当屏幕中内容很多时候需要 ... -
7.1.3 TimePicker结合案例详解
2011-07-25 17:06 3229TimePicker是Android的时间设置控件。TimeP ... -
7.1.2 DatePicker结合案例详解
2011-07-23 15:56 1633DatePicker是Android的日期设置控件。DateP ... -
7.5 TableLayout布局详解
2011-07-20 10:17 2059TableLayout表格布局,将子元素的位置分配到行或列中。 ... -
7.4 AbsoluteLayout布局详解
2011-07-19 16:35 4606AbsoluteLayout绝对布局,指定了子元素准确的x/y ... -
7.3 RelativeLayout布局详解
2011-07-19 14:11 1076RelativeLayout相对布局, 允许子元素指定他们相对 ... -
7.2 LinearLayout布局详解
2011-07-18 10:23 1072LinearLayout线性布局,线性布局是所有布局中最常用的 ... -
6.4 Android国际化和本地化
2011-07-14 15:37 1618何谓国际化和本地化呢?就是在资源文件夹res内建立不同国家语言 ... -
6.1.6 Gallery结合案例详解
2011-07-13 17:04 1530Gallery(相册)控件是个很不错的图片查看控件,屏幕中有一 ... -
6.1.5 GridView详解
2011-07-13 09:25 1755Android中的数据能够通过GridView类实现表格化展现 ... -
6.2 Toast 详解
2011-07-12 17:02 912Toast用于向用户显示一些帮助或提示,有三种展现形式: • ... -
ListView分页(带图片)显示用法案例
2011-07-11 17:01 3177ListView是Android中最为常用的列表类型控件,Li ... -
Spinner用法案例
2011-07-11 15:26 3005Spinner控件也是一种列表类型的控件,它的继承关系如下: ... -
Android多媒体--网络文件播放
2011-07-08 15:22 1806网络文件就是指放在网络上的文件,也可能是流媒体等网络资源。由于 ... -
android多媒体开发--本地音频文件播放
2011-07-08 15:20 5954本地文件就是指文件放在Android系统的外部存储设 ...
相关推荐
5.1.5 切换图片(ImageSwitcher和Gallery) 5.1.6 标签切换(Tab) 5.2 通用XML属性 第6章 Android菜单和布局设计 6.1 菜单(Menu) 6.1.1 上下文菜单(ContextMenu) 6.1.2 选项菜单(OptionsMenu) 6.1.3 基于XML...
7.3.17 切换图片(ImageSwitcher&Gallery) 96 7.3.18 网格视图(GridView)介绍与应用 99 7.3.19 标签(Tab)介绍与应用 101 7.4 友好的菜单——menu介绍与实例 102 7.4.1 实例操作演示.. 103 7.4.2 实例...
7.3.17 切换图片(ImageSwitcher&Gallery) 7.3.18 网格视图(GridView)介绍与应用 7.3.19 标签(Tab)介绍与应用 7.4 友好的菜单——menu介绍与实例 7.4.1 实例操作演示 7.4.2 实例编程实现 7.5 Android应用的灵魂——...
1.5 Android应用结构分析 24 1.5.1 创建一个Android应用 24 1.5.2 自动生成的R.java 26 1.5.3 res目录说明 27 1.5.4 Android应用的清单文件: AndroidManifest.xml 28 1.5.5 应用程序权限说明 29 ...