如何向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
我想开发一个类似 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