Android Gallery

main.xml




    

    
    


MainActivity.java

package com.imooc.android_gallery;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Gallery;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ViewSwitcher.ViewFactory;
import android.os.Build;

public class MainActivity extends Activity implements OnItemSelectedListener,ViewFactory{

    // 准备数据源
    private int[] res = { R.drawable.item1, R.drawable.item2, R.drawable.item3,
            R.drawable.item4, R.drawable.item5, R.drawable.item6,
            R.drawable.item7, R.drawable.item8, R.drawable.item9,
            R.drawable.item10, R.drawable.item11, R.drawable.item12 };

    private ImageAdapter adapter;
    private Gallery gallery;
    private ImageSwitcher is;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        gallery = (Gallery) findViewById(R.id.gallery);
        is=(ImageSwitcher) findViewById(R.id.is);
        // gallery加载适配器
        adapter = new ImageAdapter(res, this);
        gallery.setAdapter(adapter);
        gallery.setOnItemSelectedListener(this);
        is.setFactory(this);
        //添加动画
        is.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
        is.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));
        
    }

    @Override
    public void onItemSelected(AdapterView parent, View view, int position,
            long id) {
        // TODO Auto-generated method stub
        //image.setBackgroundResource(res[position%res.length]);
        is.setBackgroundResource(res[position%res.length]);
    }

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

    @Override
    public View makeView() {
        // TODO Auto-generated method stub
        ImageView image=new ImageView(this);
        image.setScaleType(ScaleType.FIT_CENTER);
        
        return image;
    }

}

ImageAdapter.java

package com.imooc.android_gallery;

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

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() {
        // TODO Auto-generated method stub
        return Integer.MAX_VALUE;
    }

    
    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return res[position];
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        Log.i("Main", "position="+position+"res的角标="+position%res.length);
        ImageView image=new ImageView(context);
        image.setBackgroundResource(res[position%res.length]);
        image.setLayoutParams(new Gallery.LayoutParams(200, 150));
        image.setScaleType(ScaleType.FIT_XY);
        return image;
    }



}

演示效果:


gallery.gif

你可能感兴趣的:(Android Gallery)