1、ImageView组件和Gallery组件

ImageView为图像视图,用于在屏幕中显示任何的Drawable对象。

画廊视图用Gallery表示,能够按水平方向显示内容,并可以用手指直接拖动图片移动,一般用来浏览图片。

2、定义布局管理器

ImageView支持的XML属性

XML属性

描述

android:adjustViewBounds

用于设置ImageView是否调整自己的边界保持所显示图片的长宽比

android:maxHeight

设置ImageView的最大高度,需要设置android:adjustBounds属性值为true,否则不起作用

android:maxWidth

设置ImageView的最大宽度,需要设置android:adjustBounds属性值为true,否则不起作用

android:scaleType

用于设置所显示的图片如何缩放或移动以适应ImageView的大小,其属性值可以是maxtrix(使用maxtrix方式进行缩放)、fitXY(对图片横向、纵向独立缩放,使得该图片完全适应于该ImageView,图片的纵向比可能会该改变)、fitStart(保持纵向比缩放图片,直到该图片能完全显示在ImageView中,缩放完成后该图片放在ImageView的左上角)、fitCenter(保持纵横比缩放图片,直到该图片能完全显示在ImageView中,缩放完成后改图片放在ImageView的中央)、fitEnd(保持纵横比缩放图片,直到该图片能完全显示在ImageVIew中,缩放完成后该图片放在ImageView的右下角)、center(把图片放在ImageView中间,不进行任何缩放)、centerCrop(保持纵横比缩放图片,以使得图片能完全覆盖ImageView)或centerInside(保持纵横比缩放图片,以使得ImageView能完全显示该图片)

android:src

用于设置ImageView所显示的Drawable对象的ID,例如,设置显示保存在res/drawable目录下的名称为flower.jpg的图片,可以将属性值设置为android:src=”@drawable/flower”

android:tint

用于为图片着色,其属性值可以是“#rgb”、“#argb”、“#rrggbb”或“#aarrggbb”表示的颜色值

xml代码:

http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

android:src="@drawable/icon"

android:id="@+id/imageView"

android:maxWidth="300px"

android:maxHeight="200px"

android:adjustViewBounds="true"

android:tint="#77ff0000"

android:scaleType="fitEnd"

android:layout_margin="5px"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

Gallery支持的XML属性

XML属性

描述

android:animationDuration

用于设置列表项切换时的动画持续时间

android:gravity

用于设置对齐方式

android:spacing

用于设置列表项之间的间距

android:umselectedAlpha

用于设置没有选中的列表项的透明度

layout中xml中的布局:

http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

android:id="@+id/gallery1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:spacing="5px"

android:unselectedAlpha="0.6" />

res/values目录的string.xml代码

Gallery

Hello

world!

Settings

3、activity控制程序

Gallery:

package com.example.gallery;

import android.app.Activity;

import android.content.res.TypedArray;

import android.os.Bundle;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.BaseAdapter;

import android.widget.Gallery;

import android.widget.ImageView;

import android.widget.Toast;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle

savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Gallery gallery = (Gallery)

findViewById(R.id.gallery1);//获取Gallery组件

BaseAdapter adapter = new

BaseAdapter(){

@Override

public View

getView(int position,View convertView,ViewGroup parent){

ImageView

imageview; //声明ImageView的对象

if(convertView

== null){

imageview = new ImageView(MainActivity.this);//创建ImageView的对象

imageview.setScaleType(ImageView.ScaleType.FIT_XY);//设置缩放方式

imageview.setLayoutParams(new Gallery.LayoutParams(180,

135));

TypedArray typedArray =

obtainStyledAttributes(R.styleable.Gallery);

imageview.setBackgroundResource(typedArray.getResourceId(R.styleable.Gallery_android_galleryItemBackground,

0));

imageview.setPadding(5, 0, 5, 0); //设置ImageView的内边距

}

else{

imageview

= (ImageView) convertView;

}

imageview.setImageResource(imageId[position]);

return

imageview;

}

@Override

public long

getItemId(int position){

return

position ;

}

@Override

public Object

getItem(int position){

return

position;

}

@Override

public int

getCount(){

return

imageId.length;

}

};

gallery.setAdapter(adapter); //将适配器与Gallery关联

gallery.setSelection(imageId.length/2);//让中间的图片选中

gallery.setOnItemClickListener(new

OnItemClickListener(){

@Override

public void

onItemClick(AdapterView

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐