main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="400dip">
<ImageSwitcher
android:id="@+id/switcher"
android:layout_width="fill_parent"
android:layout_height="400dip"
android:text="Hello World!"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:paddingTop="60dp"/>
</ScrollView>
<Gallery
android:id="@+id/gallery"
android:layout_width="fill_parent"
android:layout_height="80dip"
android:gravity="center_vertical"
android:spacing="3dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
数据适配器
package com.example.a14468.imageswitchergallery;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
/**
* Created by 14468 on 2017/4/20.
* 设置一个数据适配器,数据适配器由创建一个imageAdapter对象来生成显示图片
*/
public class ImageAdapter extends BaseAdapter {
private Context mContext;//创建本Activity的上下文对象
private Integer[] mImageIds;//图片资源
public ImageAdapter(Context c,Integer[] m){
this.mContext = c;
this.mImageIds = m;
}
@Override
public int getCount() {
return mImageIds.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
/**
* 显示Gallery里的模式
* @param position
* @param convertView
* @param parent
* @return
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView i = new ImageView((mContext));
i.setImageResource(mImageIds[position]);//设置控件显示的图片
i.setAdjustViewBounds(true);//保持图片的纵横比例
i.setLayoutParams(new Gallery.LayoutParams(80,70));//设置ImageView 的宽高参数
return i;
}
}
MainActivity
package com.example.a14468.imageswitchergallery;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Gallery;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher;
import java.io.InputStream;
public class MainActivity extends AppCompatActivity implements ViewSwitcher.ViewFactory {
protected static InputStream is;
private ImageSwitcher mSwitcher;
/*设定在Gallery的图片*/
//创建整形数组来存放图片资源
private Integer[] mImageIds = {
R.mipmap.ic_launcher,R.mipmap.icon, R.mipmap.ftp,
R.mipmap.ic_launcher,R.mipmap.ic_launcher_round, R.mipmap.icon,
R.mipmap.ic_launcher,R.mipmap.ic_launcher_round, R.mipmap.ic_launcher
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*设定Switcher*/
mSwitcher = (ImageSwitcher) findViewById(R.id.switcher);
mSwitcher.setFactory(this);
mSwitcher.setImageResource(mImageIds[0]);
Gallery g = (Gallery) findViewById(R.id.gallery);
g.setAdapter(new ImageAdapter(MainActivity.this,mImageIds));
g.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mSwitcher.setImageResource(mImageIds[position]);
}
});
}
/*Switcher的模式*/
@Override
public View makeView() {
ImageView i = new ImageView(this);
i.setBackgroundColor(0xFF000000);
i.setScaleType(ImageView.ScaleType.FIT_CENTER);
i.setLayoutParams(new ImageSwitcher.LayoutParams(480,400));
return i;
}
}