Android实现图片浏览器示例

本文所述为一个基础的Android图片浏览器代码,是仿写Google原版实现的,代码中实现了主要的实现过程和方法,具体的完善还需要自己添加,代码中有很多注释,可帮助新手们快速理解代码,使用了部分图像资源。

主要功能代码如下:

package com.android.coding;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.Gallery.LayoutParams;
import android.widget.ViewSwitcher.ViewFactory;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
public class ViewPicturesActivity extends Activity {
 ImageSwitcher imageSwitcher; //声明ImageSwitcher对象,图片显示区域
 Gallery gallery;       //声明Gallery对象,图片列表索引
 int imagePosition;      //标记图片数组下标,用于循环显示
 //声明图片整型数组
 private int[] images = {
  R.drawable.image1,R.drawable.image2,
  R.drawable.image3,R.drawable.image4,
  R.drawable.image5,R.drawable.image6,
  R.drawable.image7,R.drawable.image8,
  R.drawable.image9,R.drawable.image10,
  R.drawable.image11,R.drawable.image12,
  R.drawable.image13,R.drawable.image14,
  R.drawable.image15,R.drawable.image16,
  R.drawable.image17};

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    //通过控件的ID获得imageSwitcher的对象
    imageSwitcher = (ImageSwitcher) findViewById(R.id.switcher);
    //设置自定义的图片显示工厂类
    imageSwitcher.setFactory(new MyViewFactory(this));
    //通过控件的ID获得gallery的对象
    gallery = (Gallery) findViewById(R.id.gallery);
    //设置自定义的图片适配器
    gallery.setAdapter(new ImageAdapter(this));
    //实现被选中的事件监听器
    gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
  @Override
  public void onItemSelected(AdapterView<?> parent, View view,
   int position, long id) {
  //通过求余数,循环显示图片
  imageSwitcher.setImageResource(images[position%images.length]);
  }
  @Override
  public void onNothingSelected(AdapterView<?> parent) {
  // TODO Auto-generated method stub
  }
 });
  }

  //自定义图片适配器,继承BaseAdapter
  class ImageAdapter extends BaseAdapter{
 private Context context; //定义上下文

 //参数为上下文的构造方法
 public ImageAdapter(Context context) {
  this.context = context;
 }

 //得到图片的大小
 @Override
 public int getCount() {  //设置为整型的最大数
  return Integer.MAX_VALUE;
 }

 //得到指定图片的对象
 @Override
 public Object getItem(int position) {
  return null;
 }

 //得到指定图片的对象的ID
 @Override
 public long getItemId(int position) {
  return 0;
 }

 //显示图标列表
 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  ImageView iv = new ImageView(context); //创建ImageView对象
  iv.setImageResource(images[position%images.length]);  //设置循环显示图片
  iv.setAdjustViewBounds(true); //图片自动调整显示
  //设置图片的宽和高
  iv.setLayoutParams(new Gallery.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
  return iv; //返回ImageView对象
 }
  }

  //自定义图片显示工厂类,继承ViewFactory
  class MyViewFactory implements ViewFactory{
 private Context context; //定义上下文

 //参数为上下文的构造方法
 public MyViewFactory(Context context) {
  this.context = context;
 }

 //显示图标区域
   @Override
 public View makeView() {
  ImageView iv = new ImageView(context); //创建ImageView对象
  iv.setScaleType(ImageView.ScaleType.FIT_CENTER); //图片自动居中显示
  //设置图片的宽和高
  iv.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
  return iv; //返回ImageView对象
 }
  }
}

本文所述仅为其主要功能代码部分,读者可以对其进一步加以完善。由图像查看器还可以扩展出很多实用的Android图像操作功能,这些都是作为一个android应用开发新手应该搞定的技巧。

(0)

相关推荐

  • Android实现网络图片浏览功能

    我们在上网的过程中经常看到各种图片,那你知道它是如何实现的吗?接下来就让我们一块探讨一下. 网络图片的浏览可以分为俩部分,基本的页面布局与界面交互,让我们一步步的来编写. 基本布局很简单,只需要有一个输入图片链接的EditText,一个浏览按钮,一个ImageView就差不多了.下面是简单代码. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="ht

  • Android编程实现的超炫图片浏览器

    本文实例讲述了Android编程实现的超炫图片浏览器.分享给大家供大家参考,具体如下: 使用过Android自带的gallery组件的人都知道,gallery实现的效果就是拖动浏览一组图片,相比iphone里也是用于拖动浏览图片的coverflow,显然逊色不少.实际上,可以通过扩展gallery,通过伪3D变换可以基本实现coverflow的效果.本文通过源代码解析这一功能的实现.具体代码作用可参照注释. 最终实现效果如下: 要使用gallery,我们必须首先给其指定一个adapter.在这里

  • Android实现网络图片浏览器

    本文实例为大家分享了Android网络图片浏览器的制作过程,供大家参考,具体内容如下 一.创建一个"网络图片浏览器的应用程序",并设计用户交互界面,"网络图片浏览器"对应的布局文件(activity_main.xml)代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.and

  • Android实现网页图片浏览功能

    本文实例为大家分享了AndAndroid实现网页图片浏览的具体代码,供大家参考,具体内容如下 基本功能:输入图片的url然后点击按钮加载出来图片 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&

  • Android应用中图片浏览时实现自动切换功能的方法详解

    先给最终效果图: 当我们在最下边的gallery中切换图片时,上面的大图片会自动切换,切换时有动画效果哦,很简单的一个程序,有待完善更多的功能! activity代码: package cn.com.chenzheng_java; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.V

  • Android微信图片浏览框架设计

    一.业务场景 1.聊天界面发送图片==>多选点选+有右上角"发送"+图片预览==>图片预览支持右上角"发送"逻辑 2.发表动态==>多选点选+右上角"完成" + 图片预览==>图片预览支持右上角"完成"逻辑 3.个人资料更改头像==>单选点选 + 图片预览截图==>图片预览截图支持右上角"使用"逻辑 二.Intent参数设计; (Intent传参原则:尽量不要使用自定义类

  • Android使用gallery和imageSwitch制作可左右循环滑动的图片浏览器

    效果图: 为了使图片浏览器左右无限循环滑动 我们要自定义gallery的adapter 如果要想自定义adapter首先要了解这几个方法 @Override public int getCount() { // TODO Auto-generated method stub return 0; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @O

  • Android实现图片浏览器示例

    本文所述为一个基础的Android图片浏览器代码,是仿写Google原版实现的,代码中实现了主要的实现过程和方法,具体的完善还需要自己添加,代码中有很多注释,可帮助新手们快速理解代码,使用了部分图像资源. 主要功能代码如下: package com.android.coding; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.Vi

  • Android简易图片浏览器的实现

    闲着没事,花了半个小时用这几天发布的部分内容来做一个Android简易图片浏览器小程序,代码设main_activity.xml设计首界面,设计三个按钮并赋予id,然后在MainActivity调用各个btn的id实现set方法,每个方法里实现intent跳转对应的界面即可!代码如下:(Main2-3-4Activity的代码我就不写了,在建立其MainActivity.java文件时,其xml对直接出来,并且我的MainActivity.java也没有写内容) main_activity.xm

  • Android实现图片压缩示例代码

    核心思想是通过BitmapFactory.Options来缩放图片,主要是用到了它的inSampleSize参数(采样率) 当inSampleSize为1的时候,采样后的图片大小为图片的原始大小: 当inSampleSize为2的时候,采样后的图片的宽和高是原来的1/2,也就是说,它的像素点是原来的1/4,占的内存自然就是原来的1/4了.以此类推. 当inSampleSize小于1的时候,效果和等于1的时候是一样的. 压缩流程如下: 1.BitmapFactory.Options 的inJust

  • Android实现幻灯片式图片浏览器

    我们来实现一个幻灯片式图片浏览器: 最下面一个画廊视图,选中画廊中的图片,会在上面的ImageSwitcher控件中显示大图. 效果图如图 实现方法: 在布局文件中添加图片切换控件ImageSwitcher和画廊视图控件Gallery res/layout/main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas

  • Android自定义Gallery控件实现3D图片浏览器

    本篇文章主要介绍如何使用自定义的Gallery控件,实现3D效果的图片浏览器的效果. 话不多说,先看效果. 上面是一个自定义的Gallery控件,实现倒影和仿3D的效果,下面是一个图片查看器,点击上面的小图片,可以在下面查看大图片. 下面重点说一下,实现图片查看器的思路. 1.手机中图片路径的获取 首先,先不管图片如何展示,如果我们想实现图片查看器的功能,我们首先需要做的是获取到所有的图片的路径信息,只有这样,我们才能实现对图片的查看. 我们可以使用下面的代码实现 private List<St

  • Android 给图片加上水印的示例代码(支持logo+文字)

    本文介绍了Android 给图片加上水印的示例代码(支持logo+文字),分享给大家,具体如下: 现在我们想要往图片上打上水印,该水印应符合这样的需求的: 支持logo+文字: 文字信息支持多行展示: 用户可以选择水印在图片上的生成位置(左上.右上.右下和左下). 粗略的结构图低配版大概就长这样... 水印结构图.png 现在提供这样的一种思路去实现这一个需求,我们可以通过自定义一个view,view的布局中包含logo.公司名称和相关信息,这个view就是我们要打上图片的水印. 这样的一个vi

  • Android实现中轴旋转特效 Android制作别样的图片浏览器

    Android API Demos中有很多非常Nice的例子,这些例子的代码都写的很出色,如果大家把API Demos中的每个例子研究透了,那么恭喜你已经成为一个真正的Android高手了.这也算是给一些比较迷茫的Android开发者一个指出了一个提升自我能力的方向吧.API Demos中的例子众多,今天我们就来模仿其中一个3D变换的特效,来实现一种别样的图片浏览器. 既然是做中轴旋转的特效,那么肯定就要用到3D变换的功能.在Android中如果想要实现3D效果一般有两种选择,一是使用Open

  • Android编程图片操作类定义与用法示例【拍照,相册选图及裁剪】

    本文实例讲述了Android编程图片操作类定义与用法.分享给大家供大家参考,具体如下: 主界面类:拍照及选择相册图片 import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import androi

随机推荐