前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ListView和SimpleAdapter(图文列表)

ListView和SimpleAdapter(图文列表)

作者头像
李小白是一只喵
发布2020-04-24 08:42:18
1.3K0
发布2020-04-24 08:42:18
举报
文章被收录于专栏:算法微时光算法微时光

image.png

目录

SimpltAdapter(简单适配器)

其实这个适配器并不简单,功能很强大.

simpleAdapter中五个参数的:

参数

描述

Context context

上下文对象

List<? extends Map<String, ?>> data

数据源是含有Map的一个集合

int resource

每一个item的布局文件

String[] from

new String[]{}数组,数组的里面的每一项要与第二个参数中的存入map集合的的key值一样,一一对应

int[] to

new int[]{}数组,数组里面的第三个参数中的item里面的控件id。

ImageView

ImageView是图片控件,就不在过多介绍了.

ImageView提供了adjustViewBounds属性,用于设置缩放时是否保持原图长宽比。 单独设置不起作用,需要配合maxWidth和maxHeight属性一起使用。 如果想设置图片固定大小,又想保持图片宽高比,需要如下设置: 1)设置layout_width和layout_height为wrap_content; 2)设置adjustViewBounds为true; 3)设置maxWidth、MaxHeight值。

下面进行代码演示.O(∩_∩)O

实战演示

新添加一个资源文件list_array.xml,主要作用是为simpleAdapter添加显示规则:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/header"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:maxHeight="80dp"
        android:maxWidth="80dp"
        android:padding="10dp"/>

    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20dp"
        android:padding="10dp"/>
</LinearLayout>

activity_main.xml主界面中加入一个ListView控件:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


    <ListView
        android:id="@+id/list_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="8dp" />

</android.support.constraint.ConstraintLayout>

然后便是添加代码了:

代码语言:javascript
复制
package com.example.user.imagetest;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 获取资源
        ListView list1 = (ListView)findViewById(R.id.list_view);
        // 构建Adapter
        String[] arrayName = {"孙悟空","牛魔王","猪八戒","哪吒","江流儿"};
        // 头像图标
        int[] headerID = {R.drawable.p002,R.drawable.p003,R.drawable.p002,R.drawable.p003,R.drawable.p002};

        List<Map<String, Object>> listTest = new ArrayList<Map<String, Object>>();

        for(int i = 0; i < arrayName.length; i++){
            Map<String, Object> listitem = new HashMap<String, Object>();

            listitem.put("header", headerID[i]);
            listitem.put("name", arrayName[i]);
            listTest.add(listitem);
        }

        // 创建SimpleAdapter
        SimpleAdapter simpleAdapter = new SimpleAdapter(this, listTest, R.layout.list_array,
                new String[] {"header", "name"}, new int[] {R.id.header, R.id.name});
        
        // 为listview设置适配器
        list1.setAdapter(simpleAdapter);

    }
}

当然代码中使用的图片需要自己添加.O(∩_∩)O

运行效果

image.png

参考

Android ImageView属性 Adapter基础讲解

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • SimpltAdapter(简单适配器)
  • ImageView
  • 实战演示
  • 运行效果
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档