Gallery和ImageSwitcher

activity_main.xml:
<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:orientation="vertical"
    tools:context=".MainActivity" >

    <Gallery
        android:id="@+id/gallery"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <ImageSwitcher
        android:id="@+id/imageSwitcher"
        android:layout_marginTop="150dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ImageSwitcher>

</LinearLayout>
自定义的ImageAdapter:
public class ImageAdapter extends BaseAdapter {

	private int[] res;
	private Context context;
	public ImageAdapter(int[] res,Context context) {
		super();
		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
		ImageView imageView=new ImageView(context);
		imageView.setBackgroundResource(res[position%res.length]);  //无限“循环”显示
		imageView.setLayoutParams(new Gallery.LayoutParams(200, 150));   //
		imageView.setScaleType(ScaleType.FIT_XY);    //设置拉伸效果
		return imageView;
	}

}
MainActivity.java
public class MainActivity extends Activity implements OnItemSelectedListener,ViewFactory{

	//准备数据源
	private int[] resIcon = { 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 Gallery gallery;
	private ImageAdapter adapter;
	
	private ImageSwitcher imageSwitcher;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		gallery=(Gallery) findViewById(R.id.gallery);
		imageSwitcher=(ImageSwitcher) findViewById(R.id.imageSwitcher);
		
		//gallery加载适配器
		adapter=new ImageAdapter(resIcon, this);
		gallery.setAdapter(adapter);
		
		//设置监听器
		gallery.setOnItemSelectedListener(this);
		
		//ImageSwitcher
		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 boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public void onItemSelected(AdapterView<?> parent, View view, int position,
			long id) {
		// imageView.setBackgroundResource(res[position%res.length]);  //无限“循环”显示
		imageSwitcher.setBackgroundResource(resIcon[position%resIcon.length]);
	}

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

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

}

效果图:
Gallery和ImageSwitcher_第1张图片


你可能感兴趣的:(Android开发,gallery,ImageSwitcher)