运行效果:
滑动小图片,下面预览大图片。
MainActivity.java
package com.example.ex2_14_2;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Toast;
import android.widget.ViewSwitcher.ViewFactory;
public class MainActivity extends Activity
{
private Gallery giv;
private int images[]={
R.drawable.im1,
R.drawable.im2,
R.drawable.im3,
R.drawable.im4,
R.drawable.im5,
R.drawable.im6,
R.drawable.im7,
R.drawable.im8,
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ImageView iv = (ImageView) findViewById(R.id.ImageView01);
giv = (Gallery) findViewById(R.id.gallery_image);
giv.setAdapter(new MyAdapter());
// 设置AdapterView点击监听器,Gallery是AdapterView的子类
giv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// 显示点击的是第几张图片
Toast.makeText(MainActivity.this, "" + position,
Toast.LENGTH_LONG).show();
// 设置背景部分的ImageView显示当前Item的图片
//iv.setImageResource(((ImageView) view).getId());
iv.setImageResource(images[position]);
}
});
}
class MyAdapter extends BaseAdapter{
public int getCount() {
return images.length;
}
public Object getItem(int position) {
return images[position];
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView iv=new ImageView(MainActivity.this);
//给图片设置宽高
Gallery.LayoutParams layoutParams=new Gallery.LayoutParams(150,150);
iv.setLayoutParams(layoutParams);
iv.setScaleType(ImageView.ScaleType.FIT_XY);
iv.setImageResource(images[position]);
return iv;
}
}
@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;
}
}
布局文件activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.zking.laci.android09.GalleryActivity">
<Gallery
android:layout_width="match_parent"
android:id="@+id/gallery_image"
android:layout_height="wrap_content"
android:spacing="5dp">
</Gallery>
<ImageView
android:id="@+id/ImageView01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/im1"
android:contentDescription="显示内容">
</ImageView>
</LinearLayout>