使用GridView和SimpleAdapter实现九宫格

**使用GridView和SimpleAdapter实现九宫格,这其实与上一次的作业类似,同样分为三个步骤,接下来我将是重复上次作业的的步骤完成*

完成此项任务我们应该想象到在布局方面应该有三块需要做到:从大到小说起,1、显示此列表的主界面2、在主界面一行一行显示3、在一行上显示的格式

下面根据上面的想法完成以上三种页面布局

1、显示此列表主界面,这表面上仍然是一个空的界面,目的就是为了显示内容

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/show"
        android:orientation="vertical">

    </LinearLayout>

效果为:
1126910-20170506150526664-1333385006.png

2、在主界面上一行一行的显示,用GridView实现,其实就是一个九宫格显示的模板,这里有很多需要我们学习的属性,书上有详细介绍,可以认真看,学会使用

 <GridView
            android:id="@+id/gridview1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:horizontalSpacing="10dp"
            android:numColumns="3"
            android:verticalSpacing="5dp">

        </GridView>

*效果为:**
1126910-20170506150628351-993183780.png

3、在一行上显示的格式,这其实就是一个简单的显示图片的

<ImageView
        android:id="@+id/imageView1"
        android:layout_width="80dp"
        android:layout_height="80dp" />

效果为:
1126910-20170506150700742-1646814222.png

java代码要有主Java程序和Fragment来加载数据

首先创一个AdapterFragment用来加载数据


public class Grid_ViewFragment extends Fragment {
    

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_grid__view, container, false);

        List<ClassInfo> datas = new ArrayList<>();
        datas.add(new ClassInfo(R.drawable.ccm1));
        datas.add(new ClassInfo(R.drawable.ccm2));
        datas.add(new ClassInfo(R.drawable.ccm3));
        datas.add(new ClassInfo(R.drawable.ccm4));
        datas.add(new ClassInfo(R.drawable.ccm5));
        datas.add(new ClassInfo(R.drawable.ccm7));
        datas.add(new ClassInfo(R.drawable.ccm1));
        datas.add(new ClassInfo(R.drawable.ccm7));
        datas.add(new ClassInfo(R.drawable.ccm3));
        final CustomGridViewAdapter adapter = new CustomGridViewAdapter(getActivity(), datas);


        GridView gridview = (GridView) view.findViewById(R.id.gridview1);
        gridview.setAdapter(adapter);
        return view;
    }

}

为以上数据创建一个对象组

public class ClassInfo extends Fragment {
    private int imgId;

    public ClassInfo(int imgId) {
        this.imgId = imgId;
    }

    public int getImgId() {
        return imgId;
    }

    public void setImgId(int imgId) {
        this.imgId = imgId;
    }
}

获取数据中的每个控件对象以及为每个控件赋值

public class CustomGridViewAdapter extends BaseAdapter {
    private List<ClassInfo> datas;
    private Context context;

    public CustomGridViewAdapter(Context context,List datas){
        this.datas = datas;
        this.context = context;
    }


    @Override
    public int getCount() {
        return datas.size();
    }

    @Override
    public Object getItem(int i) {
        return datas.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {

        if(view == null) {
            view = LayoutInflater.from(context).inflate(R.layout.item,null);
        }
        //2、获取View中的每个控件的对象
        ImageView img = (ImageView)view.findViewById(R.id.imageView1);
        //3、给View中的每个控件赋值
        ClassInfo classInfo = datas.get(i);
        img.setImageResource(classInfo.getImgId());
        return view;
    }
    }

最后运行结果为:
1126910-20170506151124961-778743052.png

这次作业跟上次基本差不多,就是重新回顾上节课的知识,这两块知识点可以联系在一起学习,但是很多的代码跟书上不同,我觉得也需要好好的看看书,结合老师讲的学习

转载于:https://www.cnblogs.com/chunmei123/p/6816898.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于 Kotlin 中的 GridView 九宫格图片展示,请参考以下代码示例: 1. 首先,在 XML 布局文件中添加 GridView 控件: ```xml <GridView android:id="@+id/gridView" android:layout_width="match_parent" android:layout_height="match_parent" android:numColumns="3" android:columnWidth="100dp" android:gravity="center" android:horizontalSpacing="10dp" android:verticalSpacing="10dp"/> ``` 2. 接下来,在 Kotlin 代码中,创建一个适配器类来为 GridView 设置数据和布局: ```kotlin import android.content.Context import android.view.View import android.view.ViewGroup import android.widget.BaseAdapter import android.widget.ImageView class ImageAdapter(private val context: Context, private val imageList: List<Int>) : BaseAdapter() { override fun getCount(): Int { return imageList.size } override fun getItem(position: Int): Any { return imageList[position] } override fun getItemId(position: Int): Long { return position.toLong() } override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { val imageView: ImageView if (convertView == null) { imageView = ImageView(context) imageView.scaleType = ImageView.ScaleType.CENTER_CROP imageView.layoutParams = ViewGroup.LayoutParams(200, 200) } else { imageView = convertView as ImageView } imageView.setImageResource(imageList[position]) return imageView } } ``` 3. 最后,在活动(Activity)或片段(Fragment)中,设置适配器并为 GridView 填充数据: ```kotlin import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { private val imageList = listOf(R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4, R.drawable.image5, R.drawable.image6, R.drawable.image7, R.drawable.image8, R.drawable.image9) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val adapter = ImageAdapter(this, imageList) gridView.adapter = adapter } } ``` 请确保在项目中添加了九宫格图片资源,并替换 `R.drawable.image1`、`R.drawable.image2` 等资源 ID 为您实际的图片资源。 希望对您有帮助!如果有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值