android学习Gallery和ImageSwitch的使用

  Gallery组件被称之为画廊,是一种横向浏览图片的列表,在使用android API 19 Platform 时会发现Gallery被画上了横线,表明谷歌已经不推荐使用该组件了,

* @deprecated This widget is no longer supported. Other horizontally scrolling* widgets include {@link HorizontalScrollView} and {@link android.support.v4.view.ViewPager}* from the support library.   取而代之的是 HorizontalScrollView,也就是横向的ScrollView  和 ViewPager,这两种组件前面都有了解到。 Gallery和那些ListView 等都一样需要将资源加载进适配器,然后通过SetAdapter给控件设置适配器。  1,自定义一个适配器  继承自BaseAdapter
package com.example.lining.gallery;

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

import java.util.List;

/**
 * Created by lining on 2015/11/27.
 */
public class ImageAdapter extends BaseAdapter {
    private int[]res;
    private Context context;
    public ImageAdapter(int[]res,Context context){
        this.res = res;
        this.context = context;
    }
    @Override
    public int getCount() {
        return res.length;
    }
    @Override
    public Object getItem(int position) {
        return res[position];
    }

    @Override
    public long getItemId(int position) {
        return position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView = new ImageView(context);
        imageView.setImageResource(res[position]);
        imageView.setLayoutParams(new Gallery.LayoutParams(300, 200));//设置ImageView的宽和高
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);//采用横向和纵向拉伸
        return imageView;
    }
}
  2,设置适配器,并相应监听事件OnItemSelectListening
public class MainActivity extends Activity implements AdapterView.OnItemSelectedListener {

    private int []res={R.drawable.a1,R.drawable.a2,R.drawable.a3,R.drawable.a5,R.drawable.a6};
    private Gallery gallery;
    private ImageAdapter imageAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        gallery = (Gallery)findViewById(R.id.gallery);
        imageAdapter = new ImageAdapter(res,this);
        gallery.setAdapter(imageAdapter);
        gallery.setOnItemSelectedListener(this);

    }
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id){

    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {

    }}
  这时我们可以在 onItemSelected响应函数中打印出我们选择的图片信息,onNothingSelected是只要其他的选项没有被选择就会被触发   现在我们让选择的图片用ImageSwitch显示出来
  ImageSwitch 和ImageView的功能有点类似,它们都可以用于显示图片,区别是ImageSwitch的效果更炫,他可以  指定图片切换时的效果  ImageSwitch粗略的理解就是ImamgeView的选择器,他需要设置ViewFactory的方法,我们让ViewFactory的makeView方法返回  ImageView  3,在xml中加入ImageSwitch标签,并且设置淡入淡出的效果
     imageSwitcher = (ImageSwitcher)findViewById(R.id.iamgeSwitch);
        imageSwitcher.setFactory(this);
        imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
        imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));

    同时需要实现ViewFactory的  ViewSwitcher.ViewFactory的监听事件

@Override
    public View makeView() {
        ImageView imageView = new ImageView(this);
        imageView.setScaleType(ImageView.ScaleType.CENTER);//等比例的缩放
        return imageView;
    }

  4,这时一切都准备好了,只需要在Gallery的选择事件中设置ImageSwitch的资源就可以了

   imageSwitcher.setBackgroundResource(res[position]);

 
				
时间: 2024-10-09 02:59:32

android学习Gallery和ImageSwitch的使用的相关文章

android学习---Gallery画廊视图

Gallery与Spinner有共同父类:AbsPinner,说明Gallery与Spinner都是一个列表框.它们之间的区别在于Spinner显示的是一个垂直的列表选择框,而Gallery显示的是一个水平的列表选择框.Spinner的作用是供用户选择,而Gallery则允许用户通过拖动查看上一个,下一个. Gallery用法与Spinner的用法形似,只要为它提供一个内容Adapter就可以了.Adapter的getView方法返回View作为Gallery列表的列表项.如果程序需要监控Gal

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; } @Overri

Android专题5——学习Gallery小结

Context 这是一个比较复杂的概念,有上下文,句柄,环境变量等多重含义 目前理解为:指向parent的指针,比如Button btn = new Button(this),这里的this就是一个Context对象,这句代码告诉了这个btn在哪个Activity res\values\文件夹有什么作用 我们在XML文件一个java代码中都可以用系统定义的属性来修饰View,比如:android:layout_wid="wrap_content". 上面的android:layout_

Android学习之-----Gallery

在Android中,画廊控件Gallery用来显示图片列表,可以用手指直接拖动图片左右移动.Gallery只能水平显示一行,且Gallery列表中的图片会根据不同的拖动情况向左或向右移动,直到显示到最后一个图片为止 1.XML布局 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tool

《Android学习指南》文件夹

转自:http://android.yaohuiji.com/about Android学习指南的内容分类: 分类 描写叙述 0.学习Android必备的Java基础知识 没有Java基础的朋友,请不要先看Android的课程,这样会非常累. 1.Android学习指南基础篇 对于有Java基础的朋友,能够通过本分类60讲左右的课程,打下比較坚实的基础. 2.Android学习指南项目实训篇 对于学过"1.Android2.2学习指南基础篇"的朋友,能够通过本分类项目的联系,加深对基础

android学习之--网格视图(GridView)和图像切换器(ImageSwitcher)

         GridView用于在界面上按行.列分布显示多个组件.GridView和ListView有共同父类:AbsListView.GridView与ListView的区别在于:ListView只在一个方向上分布,GridView在两个方向上分布.所以使用GridView时一般都指定numColumns大于1,否则该属性默认值为1,就意味着改GridView只有一列,那就变成了ListView GridView的xml属性 android:strtchMode 的值为:      Im

Android学习路线(十)如何将Action Bar叠放在你的布局上

为了第六篇的完整性,这里先贴出原文,下次再来翻译::p 原文地址:http://developer.android.com/training/basics/actionbar/overlaying.html By default, the action bar appears at the top of your activity window, slightly reducing the amount of space available for the rest of your activi

《Android学习指南》目录

源:<Android学习指南>目录 Android学习指南的内容分类: 分类 描述 0.学习Android必备的Java基础知识 没有Java基础的朋友,请不要先看Android的课程,这样会很累. 1.Android学习指南基础篇 对于有Java基础的朋友,可以通过本分类60讲左右的课程,打下比较坚实的基础. 2.Android学习指南项目实训篇 对于学过“1.Android2.2学习指南基础篇”的朋友,可以通过本分类项目的联系,加深对基础知识的理解和熟练运用. 3.Android学习指南提

Android 学习资料分享(2015 版)

我是如何自学Android,资料分享(2015 版) Tikitoo2015.02.11 10:21 1713 字 3932 次阅读 自己学了两三个月的Android,最近花了一周左右的时间写了个App--Diigoer(已开源),又花了一两周时间找工作,收到了两个Offer,也算是对自己学习的一种认可吧:我刚开始学习总结的--<我是如何自学Android,资料分享>,如果是初学Android 的话,不应该错过的,而今天这篇分享好这篇文章,相对于第一次写的会有所提升,所以建议先把上一篇看了,再