项目短视频
操作示范如下(时长25:10)

【例6-6】用GridView展示相册示例
GridView可以把一个空间组织成一个二维的网格,然后放入一批图片。加载的若干图片被统一进行大小限制和加边框处理。GridView是实现九宫格图的首选。
布局文件grid_view.xml的源代码
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/grid_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="90dp"
android:horizontalSpacing="5dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
tools:context=".GridViewActivity">
</GridView>
控制文件GridViewActivity.java的源代码如下:
package com.example.chap06;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.Toast;
public class GridViewActivity extends AppCompatActivity
implements AdapterView.OnItemClickListener {
GridView grid_view;
Integer[] mThumbIds={
R.drawable.grid_view_01,R.drawable.grid_view_02,R.drawable.grid_view_03,
R.drawable.grid_view_04,R.drawable.grid_view_05,R.drawable.grid_view_06,
R.drawable.grid_view_07,R.drawable.grid_view_08,R.drawable.grid_view_09,
R.drawable.grid_view_10,R.drawable.grid_view_11,R.drawable.grid_view_12,
R.drawable.grid_view_13,R.drawable.grid_view_14,R.drawable.grid_view_15};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.grid_view);
grid_view = (GridView)findViewById(R.id.grid_view);
grid_view.setAdapter(new ImageAdapter(this));
grid_view.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
Toast.makeText(this,"你选中图片序号:"+Integer.toString(position),Toast.LENGTH_SHORT).show();
}
class ImageAdapter extends BaseAdapter{
Context mContext;
public ImageAdapter(Context c){
mContext = c;
}
@Override
public int getCount() {
return mThumbIds.length;
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int position, View view, ViewGroup viewGroup) {
ImageView imageView;
if(view==null) {
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(385, 385));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
//imageView.setPadding(8, 8, 8, 8);
imageView.setImageResource(mThumbIds[position]);
}else{
imageView=(ImageView)view;
}
return imageView;
}
}
}
打开项目配置文件AndroidManifest.xml,确保工程要启动的Activity类名为 GridViewActivity。

