ListView展示图片

java 复制代码
package com.example.myapplication5;

import android.os.Bundle;
import android.widget.ListView;

import androidx.appcompat.app.AppCompatActivity;

import com.example.adapter.ImageAdapter;

import java.util.ArrayList;
import java.util.List;

public class ListActivity extends AppCompatActivity {

    ListView listView;
    private List<String> imageUrls=new ArrayList<>(); // 图片URL列表
    List<Integer> imageIds=new ArrayList<>();

    private List<String> itemTexts=new ArrayList<>(); // 文本列表,可选

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);

        imageUrls.add("one");
        imageUrls.add("two");
        imageUrls.add("three");
        imageUrls.add("four");
        imageUrls.add("five");
        imageUrls.add("six");
        imageUrls.add("seven");
        imageUrls.add("eigth");
        imageUrls.add("nine");
        imageUrls.add("ten");
        imageUrls.add("eleven");
        imageUrls.add("twelve");
        imageUrls.add("thirteen");
        for (String imageUrl : imageUrls) {
            int imageResId = getResources().getIdentifier(imageUrl, "drawable", getPackageName());
            imageIds.add(imageResId);
            itemTexts.add(imageUrl);
        }



        listView=(ListView) findViewById(R.id.listView);
        //4、创建适配器 连接数据源和控件的桥梁
        ImageAdapter adapter = new ImageAdapter(ListActivity.this, imageIds,itemTexts);

        //5、将适配器加载到控件中
        listView.setAdapter(adapter);

    }
}
java 复制代码
package com.example.adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.myapplication5.R;

import java.util.List;

public class ImageAdapter extends BaseAdapter {
    private Context context;
    private List<Integer> imageUrls; // 图片URL列表
    private List<String> itemTexts; // 文本列表,可选

    public ImageAdapter(Context context, List<Integer> imageUrls, List<String> itemTexts) {
        this.context = context;
        this.imageUrls = imageUrls;
        this.itemTexts = itemTexts;
    }

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

    @Override
    public Object getItem(int position) {
        return imageUrls.get(position);
    }

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = LayoutInflater.from(context).inflate(R.layout.list_item, parent, false);
        }
        ImageView imageView = convertView.findViewById(R.id.imageView);
        TextView textView = convertView.findViewById(R.id.textView); // 如果不需要文本可以省略这行代码和TextView的使用
        if (itemTexts != null && !itemTexts.isEmpty()) { // 设置文本,如果需要的话
            textView.setText(itemTexts.get(position));
        } else { // 如果不需要显示文本,可以隐藏或移除TextView相关代码行或控件定义。
            textView.setVisibility(View.GONE); // 或者 textView = null; 如果不使用的话。
        }
        imageView.setImageResource(imageUrls.get(position));
        return convertView;
    }
}
XML 复制代码
<?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"
    android:orientation="vertical"
 >
    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>
XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="8dp">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:scaleType="centerCrop" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:text="Item Text" />
</LinearLayout>
相关推荐
.Peter12 分钟前
.NET/WPF 程序在部分 Windows 电脑无法保存用户环境变量:使用 DPAPI 实现安全兼容
windows·信息安全·c#·.net·wpf·环境变量·dpapi
码字的特恩1 小时前
微软确认暂不为 Windows 11 加入透明效果自定义功能,建议用户使用第三方工具
人工智能·windows·算法·microsoft·计算机·大模型·编程
神奇小梵1 小时前
安全和开发的需要了解的知识————下载内容的安全,和下载内容如何运行
android·windows·安全·个人开发
zhangfeng11332 小时前
Windows AMD显卡跑PyTorch
人工智能·pytorch·windows
楷哥爱开发2 小时前
如何在 Windows、macOS 和 Linux 上安装 scikit-learn (sklearn)
linux·windows·macos
2603_965148112 小时前
eBay商品数据API:寻找海外仓与价格洼地
大数据·人工智能·windows·python·microsoft
江畔柳前堤11 小时前
HBM:大语言模型时代的「算力血液」——从内存墙到带宽革命的深度拆解
服务器·人工智能·windows·目标检测·语言模型·自然语言处理·软件工程
天天进步201516 小时前
UI-TARS 源码解析 #22:二次开发实战:用 UI-TARS 做一个简单的 Windows 自动操作 Agent
windows·ui
啊哈一半醒16 小时前
Windows 虚拟机搭建 CentOS 全过程(2026 最新版 + 踩坑解决)
linux·windows·centos
new_zhou17 小时前
C++ 项目 AI 协作指南(Windows / MSVC 环境)
c++·人工智能·windows