`
butter
  • 浏览: 124669 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android图片浏览器:在对话框上实现图片浏览

 
阅读更多

前段时间弄了2个Gallery跟ImageSwitcher实现了图片浏览。

今天介绍一种在对话框上实现图像选择。

先声明,是借鉴别人的做法,觉得确实很好。

实现的效果如下:




部分关键代码如下:

对话框的设置:

重点是

  1. setView(imageChooseView)  
  1. 这个属性  

 

  1. public void initImageChooseDialog() {  
  2.     if(imageChooseDialog == null) {  
  3.         AlertDialog.Builder builder = new AlertDialog.Builder(this);  
  4.         builder.setTitle("请选择图像")  
  5.         .setView(imageChooseView).setPositiveButton("确定"new DialogInterface.OnClickListener() {  
  6.             @Override  
  7.             public void onClick(DialogInterface dialog, int which) {  
  8.                 imageChanged = true;  
  9.                 previousImagePosition = currentImagePosition;  
  10.                 imageButton.setImageResource(images[currentImagePosition%images.length]);  
  11.             }  
  12.         })  
  13.         .setNegativeButton("取消"new DialogInterface.OnClickListener() {  
  14.               
  15.             @Override  
  16.             public void onClick(DialogInterface dialog, int which) {  
  17.                 currentImagePosition = previousImagePosition;  
  18.                   
  19.             }  
  20.         });  
  21.         imageChooseDialog = builder.create();  
  22.     }  
  23. }  


 

加载图片的方法:

  1. public void loadImage() {  
  2.     if(imageChooseView == null) {  
  3.         LayoutInflater li = LayoutInflater.from(AddNew.this);  
  4.         imageChooseView = li.inflate(R.layout.imageswitch, null);  
  5.           
  6.         //通过渲染xml文件,得到一个视图(View),再拿到这个View里面的Gallery  
  7.         gallery = (Gallery)imageChooseView.findViewById(R.id.gallery);  
  8.         //为Gallery装载图片  
  9.         gallery.setAdapter(new ImageAdapter(this));  
  10.         gallery.setSelection(images.length/2);  
  11.         is = (ImageSwitcher)imageChooseView.findViewById(R.id.imageswitch);  
  12.         is.setFactory(this);  
  13.         is.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));  
  14.         //卸载图片的动画效果  
  15.         is.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));  
  16.         gallery.setOnItemSelectedListener(new OnItemSelectedListener(){  
  17.   
  18.             @Override  
  19.             public void onItemSelected(AdapterView<?> arg0, View arg1,  
  20.                     int arg2, long arg3) {  
  21.                 //当前的头像位置为选中的位置  
  22.                 currentImagePosition = arg2;  
  23.                 //为ImageSwitcher设置图像  
  24.                 is.setImageResource(images[arg2 % images.length]);  
  25.                   
  26.             }  
  27.             @Override  
  28.             public void onNothingSelected(AdapterView<?> arg0) {  
  29.                   
  30.             }});  
  31.     }  
  32.       
  33. }  


重点,adapter的写法:

 

  1. class ImageAdapter extends BaseAdapter {  
  2.   
  3.         private Context context;  
  4.           
  5.         public ImageAdapter(Context context) {  
  6.             this.context = context;  
  7.         }  
  8.           
  9.         @Override  
  10.         public int getCount() {  
  11.             return Integer.MAX_VALUE;  
  12.         }  
  13.   
  14.         @Override  
  15.         public Object getItem(int position) {  
  16.             return position;  
  17.         }  
  18.   
  19.         @Override  
  20.         public long getItemId(int position) {  
  21.             return position;  
  22.         }  
  23.   
  24.           
  25.         /** 
  26.          * gallery从这个方法中拿到image 
  27.          */  
  28.         @Override  
  29.         public View getView(int position, View convertView, ViewGroup parent) {  
  30.             ImageView iv = new ImageView(context);  
  31.             iv.setImageResource(images[position%images.length]);  
  32.             iv.setAdjustViewBounds(true);  
  33.             iv.setLayoutParams(new Gallery.LayoutParams(80,80));  
  34.             iv.setPadding(15101510);  
  35.             return iv;  
  36.               
  37.         }  
  38.           
  39.     }  
  40.   
  41.       
  1.   
  1. //这个是重写的的方法,我给加上注释。我是百度了很久也没找到这个方法的解释。只要对着有道看的源码~~  TAT  
  2.       
  3.     @Override  
  4.     public View makeView() {  
  5.         ImageView view = new ImageView(this);  
  6.         view.setBackgroundColor(0xff000000);//设置背景边框颜色?  
  7.         view.setScaleType(ScaleType.FIT_CENTER);//设置 显示的类型  居中显示  
  8.         view.setLayoutParams(new ImageSwitcher.LayoutParams(90,90));//设置显示的图片大小  
  9.         return view;  
  10.     }  

 


<!--EndFragment-->
分享到:
评论

相关推荐

    android图片浏览器(源码)

    在Android平台上,开发一款图片浏览器是一项常见的任务,它允许用户浏览、查看和管理手机或应用内的图片。这个“android图片浏览器”源码提供了一个完整的解决方案,涵盖了从数据获取到界面展示的关键步骤。以下是对...

    android图片浏览器,实现简单图片浏览功能-android pictureviewer

    在Android平台上,开发一个图片浏览器应用是常见的需求,主要用于展示用户手机中的图片或者网络上的图片资源。本项目“android pictureviewer”就是针对这一需求而设计的,它提供了一个简单的图片浏览功能,使得用户...

    android 图片浏览器,代码及详细步骤

    本项目就是这样一个例子,它展示了如何构建一个基础的图片浏览器应用,用于在设备的存储卡中查找并浏览图片。 #### 三、核心组件与技术要点 **1. ListView** - **定义**:ListView是一个垂直滚动的列表视图,用于...

    Android-一个App内嵌浏览器

    在Android应用开发中,内嵌浏览器(In-App Browser)是一种常见的功能,它允许用户在应用程序内部浏览网页,而无需跳转到外部浏览器。本文将详细介绍Android中的内嵌浏览器实现,特别是基于WappBrowser的实践。 ...

    把网络浏览器插入对话框.rar_浏览器_网络浏览

    在"把网络浏览器插入对话框"的例子中,可能是创建一个特定的对话框或者插件,让用户可以在应用程序内部浏览网页。这通常涉及到API调用和集成,例如,使用Webview组件(如Android的WebView或Electron框架)在桌面应用...

    Android 文件浏览器

    1. 文件浏览:文件浏览器允许用户查看手机或外部存储设备上的文件和目录,支持多种文件类型,如图片、音频、视频、文档等。 2. 文件操作:包括创建、删除、重命名、移动、复制和共享文件或目录。 3. 文件分类:通过...

    基于WebView的安卓android浏览器,基本功能齐全

    综上所述,基于WebView的Android浏览器开发涉及多个方面,包括WebView组件的基本使用、功能扩展、性能优化以及安全性考虑。通过熟练掌握这些知识点,开发者可以构建出一个功能齐全且用户体验良好的轻量级浏览器应用...

    android 自定义网页浏览器

    在Android平台上开发自定义网页浏览器是一项常见的任务,它涉及到对Webview组件的深入理解和自定义。Webview是Android SDK提供的一种用于在应用内部加载和显示网页内容的组件。本项目中,开发者创建了一个简单的...

    android 文件浏览器

    本篇将详细介绍如何在Android平台上开发一个简单的文件浏览器,并通过源代码分析,帮助初学者更好地理解这一过程。 一、文件浏览器基础概念 1. Android文件系统:Android采用Linux内核,因此其文件系统与传统的...

    android文件浏览器

    在Android平台上,开发一个文件浏览器是一项常见的任务,它允许用户浏览和操作设备上的文件系统。本文将深入探讨如何创建一个Android文件浏览器,并介绍相关的技术点。 首先,Android文件浏览器的核心功能包括目录...

    android网页浏览器代码实例

    在Android平台上开发一款网页浏览器是一项复杂而有趣的技术挑战。这个"android网页浏览器...通过深入理解这些知识点,开发者可以进一步改进和扩展这个基础框架,打造功能更强大、用户体验更优秀的Android浏览器应用。

    Android做的一个网页浏览器

    在移动设备上,Android 系统提供了丰富的功能,使得开发者能够构建各种各样的应用程序,其中包括网页浏览器。本文将深入探讨如何使用Android平台开发一款简单的网页浏览器——MyBrowser。 一、基础架构 1. **...

    Android 网页浏览器源码

    在Android平台上,开发一款网页浏览器是一项复杂而有趣的任务,它涉及到许多关键的技术点。这个"Android 网页浏览器源码"项目为我们提供了一个实践这些技术的实例。下面,我们将详细探讨这个源码中涉及的主要知识点...

    Android 仿ES界面文件浏览器源码.zip源码资源下载

    在Android开发中,创建一个类似ES(Elasticsearch)界面的文件浏览器是一项常见的需求,它可以帮助用户方便地浏览和管理设备上的文件系统。这个“Android 仿ES界面文件浏览器源码.zip”提供了一套实现此类功能的源...

    Android文件浏览器的开发 Android学习日志.zip

    在Android平台上,开发一个文件浏览器是一项常见的任务,它允许用户浏览和管理设备上的文件系统。这个"Android文件浏览器的开发 Android学习日志"压缩包很可能是包含一系列教程、源代码示例或笔记,用于帮助开发者...

    android的一个简易浏览器(应用webview)

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中内嵌网页,实现与网页内容的交互。本文将深入探讨“android的一个简易浏览器(应用webview)”这个主题,帮助开发者了解如何利用WebView构建...

    android文件浏览器源代码

    在Android平台上,开发一款文件浏览器应用是Android开发者基础技能的一部分。这个源代码示例是一个基本的Android文件浏览器,用于浏览和操作本地存储的文件。以下将详细解释代码中的关键组件和功能。 首先,我们...

    Android基于WebView的手机浏览器源码用AS打开即可测试

    本项目“Android基于WebView的手机浏览器源码”提供了一个简单实用的实现,可以直接在Android Studio环境中运行和测试。通过分析这个源码,我们可以深入理解WebView的工作原理以及如何利用它来构建一个自定义的...

    android简易浏览器

    在Android平台上开发一个简易浏览器是一项基础且实用的项目,它能帮助初学者深入理解Android应用开发的基本原理。这个项目的重点在于实现基本的浏览器功能,如前进、后退以及页面加载。下面将详细介绍这个项目的相关...

Global site tag (gtag.js) - Google Analytics