展会信息港展会大全

Android开发学习之Gallery
来源:互联网   发布日期:2015-10-03 10:44:10   浏览:1337次  

导读: 从今天起,我将为大家带来Android开发学习系列文章,与大家一起来学习Android应用开发的相关知识。首先,我们来学习一个简单的例子Gallery。Gallery是一个被称...

从今天起,我将为大家带来Android开发学习系列文章,与大家一起来学习Android应用开发的相关知识。首先,我们来学习一个简单的例子Gallery。Gallery是一个被称之为画廊的控件,主要用于在应用中显示一组图片,是开发相册或者图片浏览器时十分重要的一个控件。下面,我们正式开始这个例子的学习。

首先构建布局页面,布局代码如下:

在这个布局中,我们使用了LineLayout线性布局,布局方向为垂直方向,在整个页面中只有一个Gallery控件。

与之对应的后台文件代码如下:

package com.android.gallery;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.Window;

import android.widget.Gallery;

public class MainActivity extends Activity {

int[] Images={R.drawable.image1,R.drawable.image2,R.drawable.image3,

R.drawable.image5,R.drawable.image6,R.drawable.image7,R.drawable.image10,

R.drawable.image13,R.drawable.image16,R.drawable.image17,

R.drawable.image18,R.drawable.image19,R.drawable.image21,

R.drawable.image22,R.drawable.image23,R.drawable.image24,

R.drawable.image25,R.drawable.image28,R.drawable.image27,R.drawable.image29};

Gallery g;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.activity_main);

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

ImageAdapter adapter=new ImageAdapter(this,Images);

g.setAdapter(adapter);

}

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

}

}

在上面这段代码中,我们定义了一个继承于BaseAdapter的类,这个类主要的作用是为Gallery控件提供一个显示数据的适配器,在Android中BaseAdapter是所有数据适配器的父类,当我们要为一个控件提供自定义适配器时,首先就要继承BaseAdapter类并实现其中的getItem()、getItemId()、GetView()方法,其中getView()是最为重要的方法,用于向一个View对象提供数据,在Android,所有的控件都继承于View类。我们将这个类定义为ImageAdapter,代码如下:

package com.android.gallery;

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;

import android.content.Context;

public class ImageAdapter extends BaseAdapter

{

private int[] Images;

private Context Context;

public ImageAdapter(Context c,int[] images)

{

this.Images=images;

this.Context=c;

}

@Override

public int getCount()

{

return Images.length;

}

@Override

public Object getItem(int position)

{

ImageView i=new ImageView(this.Context);

i.setBackgroundResource(Images[position]);

return position;

}

@Override

public long getItemId(int position)

{

return position;

}

@Override

public View getView(int position, View view, ViewGroup parent)

{

ImageView Image=new ImageView(this.Context);

Image.setImageResource(Images[position]);

Image.setScaleType(ImageView.ScaleType.FIT_XY);

Image.setLayoutParams(new Gallery.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));

Image.setAdjustViewBounds(true);

return Image;

}

}本程序最终真机运行情况如下图:

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港