android教程之教你用Gallery+ImageSwitcher实现相册功能 (一)

原文网址 http://www.mypanz.info/?p=203

开发工具eclipse

开发环境windows 7

1、用eclipse新建一个android项目,

填上项目名称:GalleryDemo

其他的参见图片

2、依次打开res -> drawable-hdpi 把你喜欢的图片放在这里,并取一个好听的名字

3、打开main.xml添加如下代码:

<?xml version=“1.0″ encoding=“utf-8″?>

<!—使用RelativeLayout布局–>

<RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”

android:orientation=“vertical”

android:layout_width=“fill_parent”

android:layout_height=“fill_parent”

>

<!—添加一个Gallery,名字为gallery,长度与屏幕相同,与底部对齐,每个间隔为10dip–>

<Gallery

android:id=“@+id/gallery”

android:layout_width=“fill_parent”

android:layout_height=“wrap_content”

android:gravity=“center_vertical”

android:layout_alignParentBottom=“true”

android:spacing=“10dip”

/>

</RelativeLayout>

4、打开MainActivity.java,添加如下代码,不懂的部分看注释

package info.panz;

//引入各个包

import android.app.Activity;

import android.content.Context;

import android.os.Bundle;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.Gallery;

import android.widget.ImageView;

public class MainActivity extends Activity {

//定义一个int型的数组,里面存放所有的资源文件(图片)

int[] resId = new int[]

{R.drawable.p1,R.drawable.p2,R.drawable.p3,R.drawable.p4,R.drawable.p4,

R.drawable.p6,R.drawable.p7,R.drawable.p8,R.drawable.p9};

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//从资源文件main.xml中知道gallery,

Gallery gallery = (Gallery) findViewById(R.id.gallery);

//定义一个图片接口类,来实现图片在Gallery中的显示

ImageAdapter ia = new ImageAdapter(this);

gallery.setAdapter(ia);

}

//ImageAdapter图片接口类 继承与BaseAdapter

public class ImageAdapter extends BaseAdapter{

private Context mCtx;

//构造函数

public ImageAdapter(Context con){

//上下文

/* 构建一 Integer array 并取得预加载 Drawable 的图片 id */

this.mCtx = con;

}

@Override //getCount函数,用于返回图片的张数

public int getCount() {

// TODO Auto-generated method stub

return resId.length;

}

@Override //getItem函数,用于返回图片的位置

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 //最主要的函数 返回一个ImageView的对象

public View getView(int position, View v, ViewGroup parent) {

// TODO Auto-generated method stub

//新建一个ImageView

ImageView iv = new ImageView(mCtx);

//设置图片对象给ImageView

iv.setImageResource(resId[position]);

//重置图片的宽高

iv.setScaleType(ImageView.ScaleType.FIT_XY);

//重新设置Layout的宽高

iv.setLayoutParams(new Gallery.LayoutParams(100,100));

//设置Gallery的背景图

iv.setBackgroundColor(0xFFFFFFFF);

//返回

return iv;

}

}

}

5、运行效果

6、就这样结束了?不,当然不,下一步我们将添加一个新的控件 ImageSwitcher,实现在你点击其中某个图片的时候,在上面空白区域显示该图片,下一讲,咱继续。源代码下载

你可能感兴趣的:(ImageSwitcher)