`

循环显示图像的Gallery组件

 
阅读更多



 

 

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Gallery;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.ViewSwitcher.ViewFactory;
import android.widget.Gallery.LayoutParams; 
import com.uvchip.test.ImageAdapter;
import android.widget.AdapterView.OnItemClickListener;

public class MainActivity extends Activity implements OnItemSelectedListener,
		ViewFactory {
	    private Gallery gallery;   
	    private ImageSwitcher imageSwitcher;   
	    private ImageAdapter imageAdapter;   
	    int[] resIds = { R.drawable.app, R.drawable.game,   
	              R.drawable.browser, R.drawable.life, R.drawable.music,   
	              R.drawable.photo,R.drawable.setting,R.drawable.video };  

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);  
		setContentView(R.layout.main_a);
		gallery = (Gallery) findViewById(R.id.gallery);   
        imageAdapter = new ImageAdapter(this);   
        gallery.setAdapter(imageAdapter);   
        gallery.setOnItemSelectedListener(this);  
        imageSwitcher = (ImageSwitcher) findViewById(R.id.imageswitcher);   
        // 设置ImageSwitcher组件的工厂对象   
        imageSwitcher.setFactory(this);   
        // 设置ImageSwitcher组件显示图像的动画效果   
       
        imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,   
                android.R.anim.fade_in)); 
        imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,   
                android.R.anim.fade_out));   
              
                gallery.setOnItemClickListener(new OnItemClickListener() {
        			public void onItemClick(AdapterView<?> parent, View view,
        					int position, long id) {
        				Toast.makeText(getApplicationContext(),
        						String.valueOf(id), Toast.LENGTH_SHORT).show();
        			}
        		});

	}

	@Override
	public void onItemSelected(AdapterView<?> parent, View view, int position,
			long id) {
		// 选中Gallery中某个图像时,在ImageSwitcher组件中放大显示该图像   
        imageSwitcher.setImageResource(resIds[position % resIds.length]);   

	}

	@Override
	public void onNothingSelected(AdapterView<?> parent) {
		// TODO Auto-generated method stub

	}
	// ImageSwitcher组件需要这个方法来创建一个View对象(一般为ImageView对象)   
    //  来显示图像 
	@Override
	public View makeView() {
		ImageView imageView = new ImageView(this);   
        imageView.setBackgroundColor(0xFF000000);   
        imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);   
        imageView.setLayoutParams(new ImageSwitcher.LayoutParams(   
                LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));   
        return imageView;  
	}

}

 

 

import com.uvchip.R;

import android.content.Context;
import android.content.res.TypedArray;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;

public class ImageAdapter extends BaseAdapter   
{   
	  int mGalleryItemBackground;   
      private Context mContext;   
      int[] resIds = { R.drawable.app, R.drawable.game,   
              R.drawable.browser, R.drawable.life, R.drawable.music,   
              R.drawable.photo,R.drawable.setting,R.drawable.video };  
      public ImageAdapter(Context context)   
      {   
          mContext = context;   
                  
      }   
      
	// 第1点改进,返回一个很大的值,例如,Integer.MAX_VALUE   
      public int getCount()   
      {   
          return Integer.MAX_VALUE;   
      }   

      public Object getItem(int position)   
      {   
          return position;   
      }   

      public long getItemId(int position)   
      {   
          return position;   
      }   
  
      public View getView(int position, View convertView, ViewGroup parent)   
      {   
          ImageView imageView = new ImageView(mContext);   
              // 第2点改进,通过取余来循环取得resIds数组中的图像资源ID   
          imageView.setImageResource(resIds[position % resIds.length]);   
          imageView.setScaleType(ImageView.ScaleType.FIT_XY);   
          imageView.setLayoutParams(new Gallery.LayoutParams(163, 106));   
          imageView.setBackgroundResource(mGalleryItemBackground);   
          return imageView;   
      }     
}  

 

 

 

<?xml version="1.0" encoding="utf-8"?>   
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical" android:layout_width="fill_parent"  
    android:layout_height="fill_parent">   
    <Gallery android:id="@+id/gallery" android:layout_width="fill_parent"  
        android:layout_height="wrap_content" android:layout_marginTop="30dp" />   
    <ImageSwitcher android:id="@+id/imageswitcher"  
        android:layout_width="fill_parent" android:layout_height="wrap_content"  
        android:layout_marginTop="30dp" />   
</LinearLayout> 

 

 

 

 

  • 大小: 309.8 KB
1
6
分享到:
评论

相关推荐

    Android可循环显示图像的Android Gallery组件用法实例

    至此,我们就成功地创建了一个能够循环显示图像的`Gallery`组件。需要注意的是,由于`Gallery`在Android API 21及以上版本已被弃用,所以在新版本的Android应用中,开发者通常会使用`RecyclerView`或其他第三方库...

    Gallery组件实现循环显示图像

    在Android开发中,`Gallery`组件是一个非常实用的控件,它允许用户通过左右滑动来展示一系列的图像,常用于相册应用或者图片选择器等场景。`Gallery`控件在早期版本的Android API中被引入,但在后来的版本中被`...

    Gallery和imageSwitcher循环显示切换图像组件

    在Android开发中,展示图像的方式多种多样,其中`Gallery`和`ImageSwitcher`是两种常用的组件,尤其适用于实现图片的循环显示切换效果。这里,我们将深入探讨这两个组件的使用方法及其背后的原理。 首先,`Gallery`...

    Gallery循环删除图片

    Gallery组件允许开发者设置一个适配器(如ArrayAdapter或CursorAdapter),适配器中包含一系列要展示的项。通过onItemSelectedListener监听器,可以监听到用户在Gallery上的选择变化。利用Adapter的...

    Android Gallery 一次一张图片,可以循环显示,可显示当前为第几张图片

    总结一下,要实现“Android Gallery 一次一张图片,可以循环显示,可显示当前为第几张图片”的功能,你需要: 1. 自定义`Adapter`,处理边界条件,实现循环显示。 2. 添加文本视图显示图片序号,并在`...

    可左右循环滑动的gallery图片轮播demo

    接着,"图片轮播"(Gallery)是一个展示多个图像的组件,它可以是水平或垂直布局,通常包含导航箭头、分页指示器和自动播放选项。在Android或iOS应用开发中,可以使用原生组件,如Android的ViewPager或iOS的...

    Android循环显示图片代码

    在Android系统开发中,循环显示图片是一个常见的需求,例如在轮播广告、相册应用或者背景切换等场景。为了实现这一功能,开发者通常会利用视图滚动、图像加载库以及定时器等技术。下面我们将详细探讨如何在Android中...

    无限循环滑动gallery

    Gallery组件曾是Android SDK的一部分,但在后来的版本中被弃用,取而代之的是ViewPager。然而,开发者依然可以通过自定义组件来实现类似的功能。 **无限循环滑动**的概念是当用户滑动到列表的末尾时,内容会无缝地...

    Android基于Gallery实现网络图片和本地图片循环播放

    1. **Android Gallery组件**: - Gallery是Android SDK提供的一种水平滚动的控件,可以用于展示一系列的图片或项目,用户可以左右滑动浏览。在旧版本的Android API中,Gallery是ViewGroup的一种,但在API 16后已被...

    无限自动循环的gallery 可以点击

    在Android开发中,`Gallery`组件是一个非常实用的控件,用于展示一组可横向滑动的图片或视图。在给定的标题“无限自动循环的gallery 可以点击”和描述“绝对好用的gallery 经过修改增加倒影,支持自动滚动,手动滚动...

    Gallery无限循环.zip

    "Gallery无限循环.zip"这个压缩包文件的名字暗示了它可能包含一个关于Android应用程序开发的项目,特别是与图像展示相关的部分,比如一个图片画廊应用。在这个应用中,"Gallery"通常指的是用户可以浏览并循环查看...

    android 循环gallery 选中时图片放大 可按钮控制左右

    通过以上步骤,我们成功地实现了Android Gallery组件的循环滚动、图片选中放大以及左右按钮控制切换的功能,同时还为选中图片添加了弹出动画效果。在实际项目中,可能还需要根据具体需求进行优化,例如添加图片加载...

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

    通过以上步骤,我们已经成功地实现了`Gallery`组件的图片循环旋转功能。在实际应用中,可以根据需求调整图片的间距、透明度、缩放方式等参数,以达到理想的展示效果。同时,为了优化性能,也可以考虑复用`...

    Android3D画廊Gallery实现无限循环和自动跳转

    通过以上步骤,我们能够构建一个功能丰富的3D Gallery组件,提供丰富的用户交互体验。这个过程涉及到Android UI组件的使用、自定义Adapter、图形处理、动画设计等多个方面,对提升Android开发技能有很大帮助。在实践...

    android 循环gallery 选中放大 按键控制

    在Android开发中,`Gallery`组件是一个非常有用的控件,它允许用户在多个项目之间进行水平滑动选择,常用于图像浏览或者选项选择等场景。本篇将详细讲解如何实现一个具有循环滚动、选中放大功能,并且可以使用按键...

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

    通过以上步骤,我们成功实现了Android `Gallery`组件的图片循环旋转功能。这种方法充分利用了`BaseAdapter`的机制,结合适当的初始化设置和数据处理,为用户提供了流畅的无限滚动体验。在实际应用中,可以根据需求...

    Android Gallery 3张图无限循环 左右滑动都有效

    在Android开发中,`Gallery`组件是用于展示一系列图片或者视图的一种控件,它允许用户通过水平滑动来浏览这些元素。在这个场景中,提到的"Android Gallery 3张图无限循环 左右滑动都有效"是指一个特定的实现,即在`...

    Gallery实现无线循环代码

    在Android开发中,`Gallery`组件是一个非常有用的控件,它允许用户在多个项目中进行水平滑动选择,常用于图片浏览或者下拉菜单等场景。然而,原生的`Gallery`组件并不支持无限循环的功能,也就是说,当用户在最后一...

    Gallery选中高亮和无限循环

    在Android开发中,`Gallery`组件是一个非常有用的控件,它允许用户在水平方向上浏览一系列的项目,常用于图片浏览、选项选择等场景。在实际应用中,我们经常需要实现两个功能:选中项高亮和无限循环滚动。本文将详细...

Global site tag (gtag.js) - Google Analytics