Gallery,画廊的意思,用于显示图片,不过在16版本中已经作为过时的widget ,Gallery是一个锁定中心条目并且拥有水平滚动列表的视图。
Gallery(画廊)中的视图应该使用Gallery.LayoutParams作为它们的布局参数类型
XML属性:
属性名称 | 对应的方法 | 描述 |
android:animationDuration |
setAnimationDuration(int)
| 设置布局变化时动画的转换所需的时间(毫秒级)。仅在动画开始时计时。该值必须是整数,比如:100。 |
android:gravity
|
setGravity(int)
| 指定在对象的X和Y轴上如何放置内容。指定一下常量中的一个或多个(使用 “|”分割) |
android:spacing |
setSpacing(int)
| 设置图片之间的间距 |
android:unselectedAlpha |
setUnselectedAlpha(float)
| 设置未选中的条目的透明度(Alpha)。该值必须是float类型,比如:“1.2”。 |
下面我们来看一个示例:
Android XML文件:
<?xml version="1.0" encoding="utf-8"?>
<Gallery xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gallery1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:spacing="2dp" />
我们指定了图片之间的间距为2dp
java 源码:
public class GalleryActivity extends Activity {
int currentImageIndex = 0;
int images[] = { R.drawable.ic_launcher, R.drawable.sample_0, R.drawable.sample_1,
R.drawable.sample_2, R.drawable.sample_3,R.drawable.sample_4,
R.drawable.sample_5,R.drawable.sample_6,R.drawable.sample_7 };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Gallery gallery = (Gallery) findViewById(R.id.gallery1);
gallery.setAdapter(new ImageAdapter());
gallery.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Toast.makeText(GalleryActivity.this,"your selected postion is:"+position,Toast.LENGTH_SHORT).show();
}
});
}
private class ImageAdapter extends BaseAdapter {
@Override
public int getCount() {
return images.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View arg1, ViewGroup arg2) {
ImageView imageView = new ImageView(GalleryActivity.this);
imageView.setImageResource(images[position]);
imageView.setScaleType(ScaleType.FIT_XY);
imageView.setLayoutParams(new Gallery.LayoutParams(136, 88));
return imageView;
}
}
}
运行后显示效果为: