`
jinvasshole
  • 浏览: 769397 次
文章分类
社区版块
存档分类
最新评论

Android UI开发第七篇之Android Gallery

 
阅读更多

 新建项目


② 定义layout外部resourcexml文件,用来改变layout的背景


  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <declare-styleable name="Gallery">
  4. <attr name="android:galleryItemBackground" />
  5. </declare-styleable>
  6. <!-- 定义layout 外部resource 的xml 文件,用来改变layout 的背景图。 -->
  7. </resources>
复制代码


③ 修改main.xml布局,添加一个Gallery和一个ImageView

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <AbsoluteLayout
  3. android:id="@+id/widget_absolutelayout"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. xmlns:android="http://schemas.android.com/apk/res/android"
  7. >
  8. <Gallery
  9. android:layout_width="fill_parent"
  10. android:layout_height="143px"
  11. android:layout_x="0px"
  12. android:layout_y="51px"
  13. android:id="@+id/Gallery_preView">
  14. </Gallery>
  15. <ImageView
  16. android:layout_width="239px"
  17. android:layout_height="218px"
  18. android:layout_x="38px"
  19. android:layout_y="184px"
  20. android:id="@+id/ImageView_photo">
  21. </ImageView>
  22. </AbsoluteLayout>
复制代码


④ 新建一个myImageAdapter--Gallery的适配器,它继承于BaseAdapter.

  1. package zyf.Ex_Ctrl_10ME;
  2. import android.view.View;
  3. import android.view.ViewGroup;
  4. import android.widget.BaseAdapter;
  5. public class myImageAdapter extends BaseAdapter {
  6. @Override
  7. public int getCount() {
  8. // TODO Auto-generated method stub
  9. return 0;
  10. }
  11. @Override
  12. public Object getItem(int position) {
  13. // TODO Auto-generated method stub
  14. return null;
  15. }
  16. @Override
  17. public long getItemId(int position) {
  18. // TODO Auto-generated method stub
  19. return 0;
  20. }
  21. @Override
  22. public View getView(int position, View convertView, ViewGroup parent) {
  23. // TODO Auto-generated method stub
  24. return null;
  25. }
  26. }
复制代码


⑤ 修改mainActivity.java,添加Gallery相关操作

  1. package zyf.Ex_Ctrl_10ME;

  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.widget.AdapterView;
  6. import android.widget.Gallery;
  7. import android.widget.ImageView;
  8. import android.widget.Toast;

  9. public class Ex_Ctrl_10ME extends Activity {
  10. /** Called when the activity is first created. */
  11. /*定义要使用的对象*/
  12. private Gallery gallery;
  13. private ImageView imageview;
  14. private myImageAdapter imageadapter;
  15. @Override
  16. public void onCreate(Bundle savedInstanceState) {
  17. super.onCreate(savedInstanceState);
  18. setContentView(R.layout.main);
  19. imageadapter=new myImageAdapter(this);
  20. /* 通过findViewById 取得 资源对象*/
  21. gallery=(Gallery)findViewById(R.id.Gallery_preView);
  22. imageview=(ImageView)findViewById(R.id.ImageView_photo);
  23. /*给Gallery设置适配器 把Ex_Ctrl_10ME类传入参数*/
  24. gallery.setAdapter(imageadapter);
  25. /*设置Gallery的点击事件监听器*/
  26. gallery.setOnItemClickListener(newGallery.OnItemClickListener(){
  27. @Override
  28. public void onItemClick(AdapterView<?> parent, View v, int position,
  29. long id) {
  30. // TODO Auto-generated method stub
  31. /*显示该图片是几号*/
  32. Toast.makeText(Ex_Ctrl_10ME.this,
  33. "这是图片:"+position+"号", Toast.LENGTH_SHORT).show();

  34. /*设置大图片*/
  35. imageview.setBackgroundResource(imageadapter.myImageIds[position]);
  36. }
  37. });
  38. }
  39. }
复制代码


⑥ 修改myImageAdapter.java文件,实现相簿浏览效果

  1. package zyf.Ex_Ctrl_10ME;

  2. import android.content.Context;
  3. import android.content.res.TypedArray;
  4. import android.view.View;
  5. import android.view.ViewGroup;
  6. import android.widget.BaseAdapter;
  7. import android.widget.Gallery;
  8. import android.widget.ImageView;

  9. public class myImageAdapter extends BaseAdapter{//自定义的类变量
  10. /*变量声明*/
  11. int mGalleryItemBackground;
  12. private Context context;//上下文
  13. /* 构建一Integer array 并取得预加载Drawable 的图片id */
  14. public Integer[] myImageIds = { R.drawable.photo1, R.drawable.photo2,
  15. R.drawable.photo3, R.drawable.photo4, R.drawable.photo5,
  16. R.drawable.photo6, };
  17. /*自定义的构造方法*/
  18. public myImageAdapter(Context context) {
  19. // TODO Auto-generated constructor stub
  20. this.context=context;
  21. /*
  22. * 使用在res/values/attrs.xml 中的<declare-styleable>定义 的Gallery 属性.
  23. */
  24. TypedArray typed_array=context.obtainStyledAttributes(R.styleable.Gallery);
  25. /* 取得Gallery 属性的Index id */
  26. mGalleryItemBackground=typed_array.getResourceId(R.styleable.Gallery_android_galleryItemBackground, 0);
  27. /* 让对象的styleable 属性能够反复使用 */
  28. typed_array.recycle();
  29. }
  30. /* 重写的方法getCount,返回图片数目 */
  31. @Override
  32. public int getCount() {
  33. // TODO Auto-generated method stub
  34. return myImageIds.length;
  35. }
  36. /* 重写的方法getItemId,返回图像的数组id */
  37. @Override
  38. public Object getItem(int position) {
  39. // TODO Auto-generated method stub
  40. return position;
  41. }
  42. @Override
  43. public long getItemId(int position) {
  44. // TODO Auto-generated method stub
  45. return position;
  46. }
  47. /* 重写的方法getView,返回一View 对象 */
  48. @Override
  49. public View getView(int position, View convertView, ViewGroup parent) {
  50. // TODO Auto-generated method stub
  51. /* 产生ImageView 对象 */
  52. ImageView imageview = new ImageView(context);
  53. /* 设置图片给imageView 对象 */
  54. imageview.setImageResource(myImageIds[position]);
  55. /* 重新设置图片的宽高 */
  56. imageview.setScaleType(ImageView.ScaleType.FIT_XY);
  57. /* 重新设置Layout 的宽高 */
  58. imageview.setLayoutParams(new Gallery.LayoutParams(128, 128));
  59. /* 设置Gallery 背景图 */
  60. imageview.setBackgroundResource(mGalleryItemBackground);
  61. /* 返回imageView 对象 */
  62. return imageview;
  63. }
  64. }

复制代码

http://www.devdiv.com/home.php?mod=space&uid=14682&do=blog&id=3860

/**
* @author 张兴业
* 邮箱:xy-zhang@163.com
* qq:363302850
*
*/

分享到:
评论

相关推荐

    UI开发第七篇之Android gallery实现图片的循环旋转

    UI开发第七篇之Android gallery实现图片的循环旋转UI开发第七篇之Android gallery实现图片的循环旋转

    《Android应用开发揭秘》附带光盘代码.

     第7 章多媒体开发  7.1 多媒体开发详解  7.1.1 Open Core  7.1.2 MediaPlayer  7.1.3 MediaRecorder  7.2 播放音乐  7.3 播放视频  7.4 录制歌曲  7.5 相机设置  7.6 闹钟设置  7.7 铃声设置  7.8 小结...

    《Android应用开发揭秘》源码

     第7 章多媒体开发  7.1 多媒体开发详解  7.1.1 Open Core  7.1.2 MediaPlayer  7.1.3 MediaRecorder  7.2 播放音乐  7.3 播放视频  7.4 录制歌曲  7.5 相机设置  7.6 闹钟设置  7.7 铃声设置  7.8 小结...

    Android应用开发揭秘pdf高清版

    第7 章多媒体开发 7.1 多媒体开发详解 7.1.1 Open Core 7.1.2 MediaPlayer 7.1.3 MediaRecorder 7.2 播放音乐 7.3 播放视频 7.4 录制歌曲 7.5 相机设置 7.6 闹钟设置 7.7 铃声设置 7.8 小结 第8章 网络与通信 8.1 ...

    Android开发案例驱动教程 配套代码

    第7章 UI布局 122 7.1 FrameLayout 122 7.1.1 TextSwitcher 124 7.1.2 ImageSwitcher 126 7.1.3 DatePicker 129 7.1.4 TimePicker 131 7.1.5 ScrollView 133 7.1.6 选项卡 134 7.2 LinearLayout 138 7.3 ...

    android开发入门与实战(下)

    第7章 良好的学习开端——Android基本组件介绍 7.1 第一印象很重要——界面UI元素介绍 7.1.1 视图组件(View) 7.1.2 视图容器组件(Viewgroup) 7.1.3 布局组件(Layout) 7.1.4 布局参数(LayoutParams) 7.2 我的美丽我...

    android开发入门与实战(上)

    第7章 良好的学习开端——Android基本组件介绍 7.1 第一印象很重要——界面UI元素介绍 7.1.1 视图组件(View) 7.1.2 视图容器组件(Viewgroup) 7.1.3 布局组件(Layout) 7.1.4 布局参数(LayoutParams) 7.2 我的美丽我...

    《Google Android开发入门与实战》.pdf

    第7章 良好的学习开端——android基本组件介绍 63 7.1 第一印象很重要——界面ui元素介绍 63 7.1.1 视图组件(view) 63 7.1.2 视图容器组件(viewgroup) 63 7.1.3 布局组件(layout) 64 7.1.4 布局参数...

    《Google Android SDK开发范例大全(第3版)》.pdf

    第7章 娱乐多媒体 401 7.1 访问drawable资源的宽和高 402 7.2 绘制几何图形 404 7.3 手机屏幕保护程序 408 7.4 用手指移动画面里的照片 418 7.5 加载存储卡的gallery相簿 421 7.6 取得手机内置...

    Google Android SDK开发范例大全(第3版) 4/5

    第7章 娱乐多媒体 7.1 访问Drawable资源的宽和高 7.2 绘制几何图形 7.3 手机屏幕保护程序 7.4 用手指移动画面里的照片 7.5 加载存储卡的Gallery相簿 7.6 取得手机内置媒体中的图片文件 7.7 相片导航向导与设置背景...

    Google Android SDK开发范例大全(第3版) 1/5

    第7章 娱乐多媒体 7.1 访问Drawable资源的宽和高 7.2 绘制几何图形 7.3 手机屏幕保护程序 7.4 用手指移动画面里的照片 7.5 加载存储卡的Gallery相簿 7.6 取得手机内置媒体中的图片文件 7.7 相片导航向导与设置背景...

    Google Android SDK开发范例大全(第3版) 3/5

    第7章 娱乐多媒体 7.1 访问Drawable资源的宽和高 7.2 绘制几何图形 7.3 手机屏幕保护程序 7.4 用手指移动画面里的照片 7.5 加载存储卡的Gallery相簿 7.6 取得手机内置媒体中的图片文件 7.7 相片导航向导与设置背景...

    Google Android SDK开发范例大全(第3版) 5/5

    第7章 娱乐多媒体 7.1 访问Drawable资源的宽和高 7.2 绘制几何图形 7.3 手机屏幕保护程序 7.4 用手指移动画面里的照片 7.5 加载存储卡的Gallery相簿 7.6 取得手机内置媒体中的图片文件 7.7 相片导航向导与设置背景...

    Google Android SDK开发范例大全(第3版)part2

     第7章 娱乐多媒体  7.1 访问Drawable资源的宽和高  7.2 绘制几何图形  7.3 手机屏幕保护程序  7.4 用手指移动画面里的照片  7.5 加载存储卡的Gallery相簿  7.6 取得手机内置媒体中的图片文件  7.7 ...

    Google.Android开发入门与实战

    第7章 良好的学习开端——Android基本组件介绍 7.1 第一印象很重要——界面UI元素介绍 7.1.1 视图组件(View) 7.1.2 视图容器组件(Viewgroup) 7.1.3 布局组件(Layout) 7.1.4 布局参数(LayoutParams) 7.2 我的美丽我...

    android开发实例大全_王东华

    第7章 和网络有关的实例集锦 299 实例088: 传递HTTP参数 299 实例089: 在屏幕中使用HTML程序 303 实例090: 在手机中浏览网页 304 实例091: 使用内置浏览器打开网页 305 实例092: 显示QQ空间中的照片 307 实例...

Global site tag (gtag.js) - Google Analytics