如何向Listview添加两种不同的布局?

How to add two different layouts to Listview?

我想开发一个类似 WhatsApp 聊天的界面。

我用 ListView 实现了整个界面。我可以向 ListView 添加文本。但是我不知道如何将图像添加到与附件相同的ListView

我的主要目的是将文本、图像、音频文件和视频文件添加到单个 ListView

请帮助我。

所以如果很好地理解这个问题,你想从 SD 卡或图库加载图像并加载到列表视图项目的图像视图中,对吗?

从文件加载图像:

File imgFile = new  File("/sdcard/Images/test_image.jpg");

if(imgFile.exists()){

Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);

myImage.setImageBitmap(myBitmap);

}

或者如果您想 select 来自图库:

public void pickImage() {
  Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
  intent.setType("image/*");
  startActivityForResult(intent, PICK_PHOTO_FOR_AVATAR);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == PICK_PHOTO_FOR_AVATAR && resultCode ==         Activity.RESULT_OK) {
    if (data == null) {
        //Display an error
        return;
    }
    InputStream inputStream = context.getContentResolver().openInputStream(data.getData());
    //Now you can do whatever you want with your inpustream, save it as file, upload to a server, decode a bitmap...
}
}

您可以从列表视图的 onItemClick 侦听器调用这些方法,并且 return 使用位图,当您完成图像加载时。

终于找到答案了

这是我在 ListView 中组合 TextView 和 ImageView 的代码:
adding-more-than-two-different-layouts-to-listview.html