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>