首页 > 代码库 > 从零开始学android<gallery拖拉组件.二十七.>

从零开始学android<gallery拖拉组件.二十七.>

Gallery组件可以实现图片的画廊显示效果。将图片在画廊中循环播放

继承结构如下所示

java.lang.Object
   ?android.view.View

   ?android.view.ViewGroup


   ?android.widget.AdapterView<T extends android.widget.Adapter>



   ?android.widget.AbsSpinner




   ?android.widget.Gallery
使用Gallery组件同样要使用Adapter进行数据的配置

在这里我们使用BaseAdapter进行数据的配置

Xml文件


<span style="font-size:18px;"><RelativeLayout 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"
    tools:context=".MainActivity" >

    <Gallery
        android:layout_marginTop="20dp"
        android:id="@+id/gallery"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
         />

</RelativeLayout>
</span>

JAVA文件


<span style="font-size:18px;">package com.example.gallery;

import android.os.Bundle;
import android.R.integer;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.Gallery.LayoutParams;
import android.widget.ImageView;

public class MainActivity extends Activity {
	private Gallery gallery;//声明Gallery
	private int images[] = { R.drawable.a1, R.drawable.a2, R.drawable.a3,
			R.drawable.a4, R.drawable.a5, R.drawable.a6, R.drawable.a7,
			R.drawable.a8, R.drawable.a9, R.drawable.a10, R.drawable.a11,
			R.drawable.a12, R.drawable.a13, R.drawable.a14 };// 图片数据

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		gallery=(Gallery)this.findViewById(R.id.gallery);//获得Gallery
		gallery.setAdapter(new MyAdapter());
		
	}
//	新建类继承BaseAdapter
class MyAdapter extends BaseAdapter{

	@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 position;
	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return position;
	}

	@Override
	public View getView(int position, View myview, ViewGroup parent) {
		// TODO Auto-generated method stub
//		新建I那个View对象
		ImageView image=new  ImageView(getApplicationContext());
//		设置图片数据
		image.setImageResource(images[position%images.length]);
//		设置图片的对齐方式
		image.setScaleType(ImageView.ScaleType.FIT_XY);
//		设置图片的大小
		image.setLayoutParams(new Gallery.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
//		返回ImageView 
		return image;
	}}
}
</span>

效果如下图


Gallery就是通过Adapter装载数据然后在Ui中进行画廊的显示

下节预报:GridView网格视图



从零开始学android<gallery拖拉组件.二十七.>