`

关于Gallery使用

阅读更多
Grally是可以水平滚动列表元素的布局,一般用来滚动图片。

以下为简单例子:layout文件:
<?xml version="1.0" encoding="utf-8"?><Gallery xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/gallery"    android:layout_width="fill_parent"    android:layout_height="wrap_content"/>


Activity代码中主要部分为:

@Override
public void onCreate(
    Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      Gallery gallery = (Gallery) findViewById(R.id.gallery);       
      gallery.setAdapter(new ImageAdapter(this));      gallery.setOnItemClickListener(new OnItemClickListener() {        public void onItemClick(AdapterView parent, View v, int position, long id) {            Toast.makeText(HelloGallery.this, "" + position, Toast.LENGTH_SHORT).show();        }    });}
 private class ImageAdapter extends BaseAdapter{
        private Context mContext;
        private ArrayList<Integer> imgList=new ArrayList<Integer>();
        private ArrayList<Object> imgSizes=new ArrayList<Object>();
        public ImageAdapter(Context c) throws IllegalArgumentException, IllegalAccessException{
            mContext = c;
            
            //用反射机制来获取资源中的图片ID和尺寸
        	Field[] fields = R.drawable.class.getDeclaredFields();
        	for (Field field : fields)
        	{
        		if (!"icon".equals(field.getName()))//除了icon之外的图片
        		{	
        			int index=field.getInt(R.drawable.class);
        			//保存图片ID
        			imgList.add(index);
        			//保存图片大小
        			int size[]=new int[2];
        			Bitmap bmImg=BitmapFactory.decodeResource(getResources(),index);
        			size[0]=bmImg.getWidth();size[1]=bmImg.getHeight();
        			imgSizes.add(size);
        		}
        	}
        }
        public int getCount() {
            // TODO Auto-generated method stub

            return imgList.size();
        }

        public Object getItem(int position) {
            // TODO Auto-generated method stub

            return position;
        }

        public long getItemId(int position) {
            // TODO Auto-generated method stub

            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub

            ImageView i = new ImageView (mContext);
            //从imgList取得图片ID
            i.setImageResource(imgList.get(position).intValue());
            i.setScaleType(ImageView.ScaleType.FIT_XY);
            //从imgSizes取得图片大小
            int size[]= new int[2];
            size=(int[]) imgSizes.get(position);
            i.setLayoutParams(new Gallery.LayoutParams(size[0], size[1]));
            return i;
        }
        
    };

分享到:
评论

相关推荐

    Gallery 使用

    《Android中的Gallery控件使用详解》 在Android开发中,Gallery控件是一个强大的视图组件,主要用于展示一系列的图片或视图,用户可以通过左右滑动来浏览这些元素,类似于一个可滚动的水平列表。Gallery控件的设计...

    android--Gallery 的基本使用

    本篇文章将深入解析`Gallery`组件的基本使用,以及与其相关的`ImageSwitcher`组件。 首先,我们来看`Gallery`组件。它继承自`AbsSpinner`,并提供了水平滚动的布局方式。`Gallery`通常包含一系列的子视图,如`...

    Gallery+GridView使用的demo

    本示例"Gallery+GridView使用的demo"旨在演示如何在应用程序中有效地结合这两个控件来创建一个图片浏览体验。让我们深入探讨这两个控件以及如何将它们整合到一个项目中。 首先,`Gallery`是一个水平滚动的视图,它...

    关于 Gallery

    ### 关于 Visual C++ 6.0 中 Gallery 的使用与理解 #### 一、引言 在使用Visual C++ 6.0进行开发时,可能会遇到需要在项目中添加ActiveX控件的情况。然而,有时候会发现Visual C++ 6.0的环境里无法找到已注册的控件...

    ImageSwitcher 和 Gallery 的结合使用

    将ImageSwitcher与Gallery结合使用,可以通过设置Gallery的OnItemSelectedListener监听器,在用户选择新的图片时,更新ImageSwitcher的内容。首先,为Gallery设置一个自定义适配器,这个适配器会返回每个图片对应的...

    Android下Gallery控件的使用

    下面将详细介绍`Gallery`控件的使用方法、相关属性以及如何自定义适配器。 一、`Gallery`控件的基本使用 1. 添加依赖:在XML布局文件中添加`Gallery`控件,通常设置`android:id`、`android:layout_width`和`...

    Gallery使用教程——尝试翻译一篇Android SDK Reference

    这篇博客“Gallery使用教程——尝试翻译一篇Android SDK Reference”可能详细解释了如何在应用中集成并使用这个组件。由于没有具体的博客内容,我将根据一般知识和Android SDK的相关信息,提供一个关于Gallery组件的...

    Gallery使用方法

    ### Gallery使用方法详解 #### 一、Gallery简介 Gallery 是 Android 开发中一个非常实用的控件,主要用于展示一系列图片,常用于相册或者产品图片的展示等场景。Gallery 默认会让当前图片居中显示,而当用户需要...

    使用Gallery做出图片层叠效果

    在Android开发中,`Gallery`控件是一种古老但功能强大的组件,主要用于展示一系列的视图...不过需要注意,Android在后来的版本中已经弃用了`Gallery`控件,建议使用`RecyclerView`或`ViewPager`等更现代的组件来替代。

    Gallery用法实例

    2D `Gallery`是最常见的使用方式,主要展示一维水平线上的元素。设置2D `Gallery`的基本步骤包括: 1. 在布局文件中添加`Gallery`控件: ```xml &lt;Gallery android:id="@+id/gallery" android:layout_width="match...

    android gallery和Animation组合使用, 看美女美图

    在Android开发中,`Gallery`组件和`Animation`的结合使用可以为用户界面带来丰富的交互体验,特别是用于展示图片如“美女美图”这样的应用场景。`Gallery`是Android提供的一个可滚动视图,允许用户水平浏览项目集合...

    gallery的使用

    gallery的简单使用,对gallery的使用稍微进行了进一步的优化

    Gallery循环删除图片

    在Android开发中,"Gallery循环删除图片"是一个常见的需求,主要涉及到 Gallery 组件的使用、Java反射机制的应用以及图片管理。下面将详细讲解这些知识点。 首先,Gallery 是 Android 提供的一种特殊的视图组件,...

    Gallery浏览图片

    在Android开发中,`Gallery` 是一个非常有用的控件,主要用于展示一组图片并允许用户进行水平滚动选择。...理解`Gallery`的运作方式和如何使用`BaseAdapter`来填充数据,对于Android开发者来说是一笔宝贵的财富。

    Gallery Imageswitcher切换图片demo

    在布局文件中,我们可以像使用ListView一样使用Gallery,通过设置adapter来填充数据。Gallery的主要属性包括: 1. `android:id`: 设置组件的唯一标识。 2. `android:layout_width`和`android:layout_height`: 定义...

    安卓Gallery照片墙画廊图库相关-画廊试图Gallery.rar

    这个RAR文件中的"本源码使用帮助.txt"可能包含了关于如何运行和理解代码的说明,而"更多源码打包下载.url"可能是指向更多源码资源的链接。"画廊试图Gallery"可能是包含示例代码的Java类或整个项目的目录结构。如果你...

    Gallery实例

    要使用`Gallery`,首先需要在项目的`build.gradle`文件中添加对应的依赖。 2. **布局声明**:在XML布局文件中,可以通过`&lt;Gallery&gt;`标签来声明一个`Gallery`组件。可以设置其属性,如宽度、高度、id、背景色等。...

    Gallery 3D效果

    总的来说,"Gallery 3D效果"涉及了位图操作、自定义视图、3D变换、动画以及可能的OpenGL ES使用,这些都是Android开发中高级和核心的技术点。通过实践和研究,开发者可以提升自己在这些领域的技能,从而构建出更具...

    gallery画廊

    **标签** "gallery" 这个标签明确了讨论的主题是关于Android的Gallery组件。 在提供的压缩包文件中,有以下三个部分: 1. **AndroidManifest.xml**:这是每个Android应用的核心配置文件,它包含了应用的元数据、...

    Android 使用Gallery_tabhost实现标签效果图源码.rar

    在这个项目中,`Android 使用Gallery_tabhost实现标签效果图源码.rar`是一个示例,展示了如何结合这两个组件来创建一个动态、交互式的标签切换效果。 `Gallery`是Android提供的一个水平滚动视图,它允许用户通过...

Global site tag (gtag.js) - Google Analytics