2017.4.28

安卓作业:九宫格

问题详见

使用GridView和SimpleAdapter实现手机界面常见的的九宫格,图片可以任意选择,注意图片的大小要一致。

思路分析

1.在主界面创建一个LinearLayout用于加载fragment
2.创建一个3列的GridView
3.创建一个图片的xml布局
4.java语言编写

xml界面

GridView

<GridView
    android:id="@+id/grid_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:numColumns="3"     ---设置为3列
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:columnWidth="90dp"
    android:stretchMode="columnWidth"
    android:gravity="center"/>

ImageView

<ImageView
    android:layout_width="100dp"
    android:layout_height="150dp" --这个大小差不多将手机屏幕充满
    android:id="@+id/image_view"
    android:src="@mipmap/ic_launcher"
    />

java代码

1.创建对象。

public class ClassInfo {
private int imgId;
public ClassInfo( int imgId) {    //定义对象的方法
    this.imgId = imgId;
}
public int getImgId() {      //获取图片的id的方法
    return imgId;
}
}

2.创建一个继承于BaseAdapter的类,并将其方法写入。

重写getVIew()方法

public View getView(int i, View view, ViewGroup viewGroup) {
    //获取view
    if(view==null){
        view = LayoutInflater.from(context).inflate(R.layout.gridview_item,null);
    }
    ImageView img =(ImageView) view.findViewById(R.id.image_view);  
    ClassInfo classInfo = datas.get(i);
    img.setImageResource(classInfo.getImgId());  
    return view;
}

3.增加相应的图片数据。

List<ClassInfo> datas = new ArrayList<>();
datas.add(new ClassInfo(R.drawable.renwu1)); //9张图,此处省略写
    final CustomGridViewAdapter adapter = new CustomGridViewAdapter(getActivity(),datas);
    GridView gridView = (GridView)view.findViewById(R.id.grid_view);
    gridView.setAdapter(adapter);//绑定adapter到GridView中

4.静态增加数据到布局中

FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
    if (gridViewFragment == null) {
        gridViewFragment = new GridViewFragment();
        transaction.add(R.id.show ,gridViewFragment);
    }
    transaction.replace(R.id.show, gridViewFragment);
    transaction.commit(); //这句话一定要写,不写不会显示结果

结果展示

posted on 2017-04-28 20:01  丁金涛  阅读(127)  评论(0)    收藏  举报

导航