`
xyz_lmn
  • 浏览: 65506 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

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实现图片的循环旋转

    在Android UI开发中,`Gallery`组件是一种可以展示多个项目并允许用户左右滑动选择的控件,常用于实现图片轮播或者选项选择等场景。本篇将详细讲解如何利用`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 章多媒体开发 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 两个gallery同时滑动

    在Android开发中,"Android 两个gallery同时滑动"是一个涉及到UI组件和多线程同步的问题。`Gallery`是Android SDK提供的一种特殊的ListView,它允许用户在一个水平轴上浏览项目,通常用于创建相册或者选择菜单等场景...

    android gallery 只加载当前图片 图片缓存 异步 下载

    在Android开发中,"android gallery 只加载当前图片 图片缓存 异步 下载"这一主题涉及到几个关键概念和技术,这些技术对于构建一个高效、流畅的图片浏览应用至关重要。以下是对这些知识点的详细说明: 1. **只加载...

    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应用源码之Gallery相册浏览.rar

    通过对这个源码的学习,开发者不仅可以掌握`Gallery`组件的工作原理,还能了解到Android UI设计的实践技巧,以及如何处理触摸事件、优化图片加载、实现动画效果等方面的知识。这对于开发复杂的Android应用,尤其是...

    Android应用开发基础教学大纲.pdf

    本教学大纲共包括 10 个实验项目,涵盖了 Android 应用开发的基础知识,包括 Activity 组件的生命周期、用户界面结构、资源管理、Intent、UI 组件、菜单和通知、Dialog、服务、Preferences 和文件操作等。...

    android开发实例大全_王东华

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

    Android入门到精通源代码.

    第7章 Android中的核心Intent 7.1 Intent的作用 7.1.1 多Activity的Android应用 7.1.2 Activity之间的消息传递 7.2 Intent的分类 7.2.1 Action Intent 7.2.2 Broadcast Intent 7.3 解析Intent的实现 7.3.1 Intent ...

    Android-Gallery-App:这是一个 android 画廊应用程序,使用 android studio 开发

    在Android平台上,开发一个画廊...以上就是"Android-Gallery-App"项目涉及的关键知识点,通过这个项目,开发者可以学习到Android应用开发的基本流程,以及如何利用Android Studio和Java来构建一个功能完善的画廊应用。

    gallery album_android_

    总的来说,"gallery album_android_"项目涵盖了Android开发的多个方面,从基本的UI设计到复杂的图片处理和分类,再到与用户交互的功能实现,都是Android开发者需要掌握的重要技能。这个项目为学习和实践这些技能提供...

    老罗android视频开发源码和ppt经典

    六、Android常用UI控件编程 6.1 TextView如何显示丰富的文本 6.2 TextView显示表情图像和文字 6.3 TextView单击链接弹出Activity 6.4 TextView实现跑马灯效果 6.5 EditText输入表情图像 6.6 EditText中输入特定的...

    Android Gallery相册浏览-IT计算机-毕业设计.zip

    总之,“Android Gallery相册浏览”项目涵盖了Android开发的多个核心领域,包括UI设计、数据管理、图像处理、事件响应、性能优化等,对于提升Android开发者的技术能力具有极大的价值。通过这个项目,学生可以全面...

    Google Android开发入门与实战的代码

    第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 布局参数...

Global site tag (gtag.js) - Google Analytics