Android 用Gallery和ImageSwicher实现画廊效果,展示图片+完整源代码

来源:互联网 发布:光束灯编程 512 编辑:程序博客网 时间:2024/05/01 18:00

ImageAdapter适配器类的代码:

package com.example.glallery;import android.content.Context;import android.view.ContextMenu;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.Gallery;import android.widget.ImageView;/** * Created by 联想 on 2016/7/5. */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 Integer.MAX_VALUE;    }    @Override    public Object getItem(int i) {        return res[i];    }    @Override    public long getItemId(int i) {        return i;    }    @Override    public View getView(int i, View view, ViewGroup viewGroup) {        ImageView image = new ImageView(context);        image.setBackgroundResource(res[i%res.length]);        image.setLayoutParams(new Gallery.LayoutParams(200,150));        image.setScaleType(ImageView.ScaleType.FIT_XY);        return image;    }}
MainActivity代码:

package com.example.glallery;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.AdapterView;import android.widget.Gallery;import android.widget.ImageSwitcher;import android.widget.ImageView;import android.widget.ViewSwitcher;public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener, ViewSwitcher.ViewFactory {    private Gallery mGallery;    private ImageAdapter iA;    private ImageSwitcher imageSwitcher;    //数据源    private int[]res = {            R.mipmap.item1,            R.mipmap.item2,            R.mipmap.item3,            R.mipmap.item4,            R.mipmap.item5,            R.mipmap.item6,            R.mipmap.item7,            R.mipmap.item8,            R.mipmap.item9,            R.mipmap.item10,            R.mipmap.item11,            R.mipmap.item12    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mGallery = (Gallery) findViewById(R.id.gallery);        iA = new ImageAdapter(res,this);        mGallery.setAdapter(iA);        mGallery.setOnItemSelectedListener(this);        imageSwitcher = (ImageSwitcher) findViewById(R.id.is);        imageSwitcher.setFactory(this);        imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));        imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));    }    @Override    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {        // image.setBackgroundResource(res[i%res.length]);        imageSwitcher.setBackgroundResource(res[i% res.length]);    }    @Override    public void onNothingSelected(AdapterView<?> adapterView) {    }    @Override    public View makeView() {        ImageView image = new ImageView(this);        image.setScaleType(ImageView.ScaleType.FIT_CENTER);        return image;    }}

activity_main的布局文件:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:orientation="vertical"    tools:context="com.example.glallery.MainActivity">    <Gallery        android:id="@+id/gallery"        android:layout_width="match_parent"        android:layout_height="wrap_content">    </Gallery>    <ImageSwitcher        android:id="@+id/is"        android:layout_width="match_parent"        android:layout_height="wrap_content">    </ImageSwitcher></LinearLayout>


0 0