- 浏览: 419685 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
rkikbs:
有下载地址么?
我的iOS视频开放了,欢迎大家在线观看 -
wjpiao:
支持支持!
我的iOS视频开放了,欢迎大家在线观看 -
关东升:
wwwang89 写道关老师,你好 ,请问:我的服务器端是用j ...
iOS网络编程-ASIHTTPRequest框架同步请求 -
wwwang89:
关老师,你好 ,请问:我的服务器端是用java写的,不是.ne ...
iOS网络编程-ASIHTTPRequest框架同步请求 -
关东升:
crowning_2008 写道关老师 好!你好
iOS开发那些事-关于性能优化–选择nib还是故事板的讨论
Gallery(相册)控件是个很不错的图片查看控件,屏幕中有一个图片列表,Gallery类的继承关系如下:
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.AdapterView<T extends android.widget.Adapter>
↳ android.widget.AbsSpinner
↳ android.widget.Gallery
这个Gallery案例,可以用手滑动Gallery,当用户点击某个图片弹出一个Toast,如6-11图:
6-11 Gallery控件使用效果图
程序代码请参考代码清单6-9:
【代码清单6-9】 chapter6_5/src/com/work/GalleryActivity.java
代码的关键的地方是实现BaseAdapter适配器类——ImageAdapter,其中关键是getView()实现。在convertView为null时候实例化控件,imageView.setLayoutParams(new GridView.LayoutParams(136, 88)是设置一个单元格中图片的大小是136×88像素。imageView.setScaleType(ImageView.ScaleType.FIT_XY) 缩放图片使用FILL方式。imageView.setImageResource(mImageIds[position])为图片控件设置图片。
在布局文件/chapter6_5/res/layout/main.xml中添加Gallery控件:
本例中设置图片的背景样式是边框样式,如图6-12。
图6-12 图片背景样式
imageView.setBackgroundResource(mGalleryItemBackground)语句就是设定样式的,成员变量mGalleryItemBackground是在ImageAdapter的构造方法中初始化的。
mGalleryItemBackground是与galleryItemBackground背景资源绑定的id值,这个id对应的galleryItemBackground属性就是设定带有边框的背景样式。
此外还要在chapter6_5/res/values/目录下面创建一个attrs.xml文件:
这是一个自定义控件属性的xml文件。但是在Android1.0时候没有这么麻烦,而是如下方式实现:
android.R.styleable.Theme_galleryItemBackground 属性在Android1.0是可以访问的,而在Android1.0之后就不能访问了,而要通过本例的方式获得galleryItemBackground的id值。
出自《Android开发案例驱动教程》
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.AdapterView<T extends android.widget.Adapter>
↳ android.widget.AbsSpinner
↳ android.widget.Gallery
这个Gallery案例,可以用手滑动Gallery,当用户点击某个图片弹出一个Toast,如6-11图:
6-11 Gallery控件使用效果图
程序代码请参考代码清单6-9:
【代码清单6-9】 chapter6_5/src/com/work/GalleryActivity.java
public class GalleryActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Gallery g = (Gallery) findViewById(R.id.gallery); g.setAdapter(new ImageAdapter(this)); g.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View v, int position, long id) { Toast.makeText(GalleryActivity.this, "" + position, Toast.LENGTH_SHORT).show(); } }); registerForContextMenu(g); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.add(R.string.gallerytext); } @Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); Toast.makeText(this, "Longpress: " + info.position, Toast.LENGTH_SHORT).show(); return true; } public class ImageAdapter extends BaseAdapter { int mGalleryItemBackground; public ImageAdapter(Context c) { mContext = c; TypedArray a = obtainStyledAttributes(R.styleable.Gallery1); mGalleryItemBackground = a.getResourceId( R.styleable.Gallery1_android_galleryItemBackground, 0); a.recycle(); } public int getCount() { return mImageIds.length; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; imageView = new ImageView(mContext); imageView.setImageResource(mImageIds[position]); imageView.setScaleType(ImageView.ScaleType.FIT_XY); imageView.setLayoutParams(new Gallery.LayoutParams(136, 88)); imageView.setBackgroundResource(mGalleryItemBackground); return imageView; } private Context mContext; private Integer[] mImageIds = { R.drawable.beijing, R.drawable.changsha, R.drawable.chengdu, R.drawable.chongqing, R.drawable.haerbing, R.drawable.jinan, R.drawable.jiujiang, R.drawable.kunming, R.drawable.nanjing }; } }
代码的关键的地方是实现BaseAdapter适配器类——ImageAdapter,其中关键是getView()实现。在convertView为null时候实例化控件,imageView.setLayoutParams(new GridView.LayoutParams(136, 88)是设置一个单元格中图片的大小是136×88像素。imageView.setScaleType(ImageView.ScaleType.FIT_XY) 缩放图片使用FILL方式。imageView.setImageResource(mImageIds[position])为图片控件设置图片。
在布局文件/chapter6_5/res/layout/main.xml中添加Gallery控件:
<?xml version="1.0" encoding="utf-8"?> <Gallery xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gallery" android:layout_width="match_parent" android:layout_height="wrap_content" />
本例中设置图片的背景样式是边框样式,如图6-12。
图6-12 图片背景样式
imageView.setBackgroundResource(mGalleryItemBackground)语句就是设定样式的,成员变量mGalleryItemBackground是在ImageAdapter的构造方法中初始化的。
public ImageAdapter(Context c) { mContext = c; TypedArray a = obtainStyledAttributes(R.styleable.Gallery1); mGalleryItemBackground = a.getResourceId( R.styleable.Gallery1_android_galleryItemBackground, 0); a.recycle(); }
mGalleryItemBackground是与galleryItemBackground背景资源绑定的id值,这个id对应的galleryItemBackground属性就是设定带有边框的背景样式。
此外还要在chapter6_5/res/values/目录下面创建一个attrs.xml文件:
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="Gallery1"> <attr name="android:galleryItemBackground" /> </declare-styleable> </resources>
这是一个自定义控件属性的xml文件。但是在Android1.0时候没有这么麻烦,而是如下方式实现:
public ImageAdapter(Context c) { mContext = c; TypedArray a = obtainStyledAttributes(android.R.styleable.Theme); mGalleryItemBackground = a.getResourceId( android.R.styleable.Theme_galleryItemBackground, 0); a.recycle(); }
android.R.styleable.Theme_galleryItemBackground 属性在Android1.0是可以访问的,而在Android1.0之后就不能访问了,而要通过本例的方式获得galleryItemBackground的id值。
出自《Android开发案例驱动教程》
发表评论
-
智捷课堂改版啦!
2015-08-04 12:09 1新站上线,为庆祝网站改版,全站所有视频限时免费三天(8月5日 ... -
《Android开发案例驱动教程》之十五章云端应用整篇下载
2011-12-08 18:08 1149《Android开发案例驱动教程》15章--云端应用[colo ... -
《Android开发案例驱动教程》源码
2011-12-08 17:57 1324《Android开发案例驱动教程》15,16,17章源码 目 ... -
android中google“定位查询”
2011-08-03 15:18 1225“定位查询”locate()方法,增加一个线程,在该线程中处理 ... -
7.1.5 选项卡结合案例详解
2011-07-27 08:58 1492选项卡是通过TabHost和TabActivity一起实现的, ... -
7.1.4 ScrollView结合案例详解
2011-07-26 17:50 2139ScrollView是一个滚动条控件,当屏幕中内容很多时候需要 ... -
7.1.3 TimePicker结合案例详解
2011-07-25 17:06 3222TimePicker是Android的时间设置控件。TimeP ... -
7.1.2 DatePicker结合案例详解
2011-07-23 15:56 1628DatePicker是Android的日期设置控件。DateP ... -
7.1.1 ImageSwitcher案例分析详解
2011-07-21 10:50 2168ImageSwitcher图像切换器,可以切换器图像。Imag ... -
7.5 TableLayout布局详解
2011-07-20 10:17 2036TableLayout表格布局,将子元素的位置分配到行或列中。 ... -
7.4 AbsoluteLayout布局详解
2011-07-19 16:35 4594AbsoluteLayout绝对布局,指定了子元素准确的x/y ... -
7.3 RelativeLayout布局详解
2011-07-19 14:11 1058RelativeLayout相对布局, 允许子元素指定他们相对 ... -
7.2 LinearLayout布局详解
2011-07-18 10:23 1064LinearLayout线性布局,线性布局是所有布局中最常用的 ... -
6.4 Android国际化和本地化
2011-07-14 15:37 1606何谓国际化和本地化呢?就是在资源文件夹res内建立不同国家语言 ... -
6.1.5 GridView详解
2011-07-13 09:25 1736Android中的数据能够通过GridView类实现表格化展现 ... -
6.2 Toast 详解
2011-07-12 17:02 901Toast用于向用户显示一些帮助或提示,有三种展现形式: • ... -
ListView分页(带图片)显示用法案例
2011-07-11 17:01 3154ListView是Android中最为常用的列表类型控件,Li ... -
Spinner用法案例
2011-07-11 15:26 2996Spinner控件也是一种列表类型的控件,它的继承关系如下: ... -
Android多媒体--网络文件播放
2011-07-08 15:22 1801网络文件就是指放在网络上的文件,也可能是流媒体等网络资源。由于 ... -
android多媒体开发--本地音频文件播放
2011-07-08 15:20 5946本地文件就是指文件放在Android系统的外部存储设 ...
相关推荐
《Dolphin 6.1.6:探索高级模拟器技术》 Dolphin 6.1.6 是一个强大的游戏模拟器,专为在个人计算机上运行GameCube和Wii游戏而设计。这款软件的独特之处在于它允许用户在PC平台上体验原本只能在专用游戏机上玩到的...
moto 刷机 RSDLite6.1.6.msi
Jetty 6.1.6 是一个开源的、轻量级的Java Web服务器和Servlet容器。这个版本的Jetty发布于较早时期,但它的设计理念和功能仍然对理解Web服务器和Servlet容器的工作原理有很大帮助。Jetty在设计时强调了性能、可嵌入...
最新版windows VirtualBox-6.1.6-137129-Win.exe
总之,Dolphin-v.6.1.6是一个全面的交友网站解决方案,涉及了Web开发的多个层面,包括后端编程、数据库管理、用户体验设计、安全性以及系统集成。开发者可以通过学习和研究这些文件,提升自己的技能,并构建出个性化...
标题中的"DSM_DS3617xs_6.1.6_15266 引导文件"指的是Synology DiskStation Manager (DSM) 的一个特定版本引导程序,适用于型号为DS3617xs的Synology NAS设备。DSM是Synology公司为其NAS产品开发的操作系统,提供了...
赠送jar包:lettuce-core-6.1.6.RELEASE.jar; 赠送原API文档:lettuce-core-6.1.6.RELEASE-javadoc.jar; 赠送源代码:lettuce-core-6.1.6.RELEASE-sources.jar; 赠送Maven依赖信息文件:lettuce-core-6.1.6....
**Intel IPP 6.1.6 Sample 知识点详解** Intel Integrated Performance Primitives (IPP) 是一套跨平台的库,旨在加速计算密集型任务,尤其是针对Intel处理器进行了优化。IPP 6.1.6是该库的一个版本,提供了丰富的...
标题提到的"mysql-connector-c-6.1.6-win32"是指针对Windows 32位系统的MySQL Connector/C 6.1.6版本的下载。这个版本的驱动程序支持与MySQL服务器进行通信,以便开发人员可以在他们的C程序中执行SQL查询、管理数据...
因为我想下载一个DELL windowsxp系统 所以只能要3C币 原版ios6微信
jetty-management-6.1.6rc0.jar
jira-greenhopper-plugin-6.1.6
【BoonEx Dolphin-Patch-v.6.1.6】是一个针对SNS(社交网络服务)平台BoonEx Dolphin的版本升级补丁。这个补丁主要用于将系统从Dolphin-v.6.1.5更新到Dolphin-v.6.1.6,确保用户能够享受到最新版本的功能和安全修复...
在“mysql-connector-c-6.1.6-win32”这个压缩包中,我们关注的是MySQL Connector/C的6.1.6版本,特别为Windows 32位操作系统设计。 MySQL Connector/C是MySQL AB公司(现在是Oracle公司的一部分)开发的,它是...
cs_6.1.6
标题中的"mysql-connector-c-6.1.6-winx64.zip"指的是这个压缩包包含了适用于Windows 64位系统的MySQL Connector/C的版本6.1.6。 MySQL Connector/C的主要功能包括: 1. **数据存取**:通过提供标准的API(如ODBC...
Seafile是一个开源、专业、可靠的云存储平台;解决文件集中存储、共享和跨平台访问等问题,由北京海文互知网络有限公司开发,发布于2012年10月;除了一般网盘所提供的云存储以及共享功能外,Seafile还提供消息通信、...
citesapce 6.1.6 免费版
**TiDB数据库 v6.1.6:分布式NewSQL数据库详解** TiDB(Tencent-InsightDB)是一款开源的、分布式的关系型数据库,它具备水平扩展和强一致性的特点,设计灵感来源于Google的Spanner和F1系统。TiDB v6.1.6是其发展的...
citespace-6.1.6最新版