Android OnItemClick在listview中显示另一个活动中的图像,不带任何路径/src

Android OnItemClick在listview中显示另一个活动中的图像,不带任何路径/src,android,android-listview,Android,Android Listview,我的应用程序中有一个Listview,它由自定义适配器和自定义对象填充textview和imageview,现在我想,当我单击Listview上的图像时,它应该在另一个活动中全屏打开,我应该如何做 我有一个套接字连接的API,它带来了一个名为image的字节数组,我将其添加到列表视图中 这是代码--> @覆盖 公共无效onBinaryMessage(字节[]图像) { Bitmap receivedImage=BitmapFactory.decodeByteArray(图像,0,图像.长度);

我的应用程序中有一个Listview,它由自定义适配器和自定义对象填充textview和imageview,现在我想,当我单击Listview上的图像时,它应该在另一个活动中全屏打开,我应该如何做

我有一个套接字连接的API,它带来了一个名为image的字节数组,我将其添加到列表视图中

这是代码-->

@覆盖
公共无效onBinaryMessage(字节[]图像)
{
Bitmap receivedImage=BitmapFactory.decodeByteArray(图像,0,图像.长度);
浮标=1;
int-width=receivedImage.getWidth();
int height=receivedImage.getHeight();
浮标高度=(浮标)高度/(浮标)200;
浮点数宽度=(浮点数)宽度/(浮点数)200;
if(标度宽度<标度高度)
{scale=scaleHeight;}
其他的
{
比例=比例宽度;
}
位图位图位图=位图.createScaledBitmap(receivedImage,(int)(宽度/比例),(int)(高度/比例),true);
addImage(新消息(位图、假消息、假消息));
现在,当单击我应该传递给intent的内容时,我可以得到列表视图中的这个图像,根据我当前的代码,我可以在listview textView元素中编辑文本。 这是代码-->

listView1.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Log.v(“模块项触发”,“模块项被触发”);
Toast.makeText(getApplicationContext(),“this==>”,Toast.LENGTH\u SHORT.show();
}
});

在活动内部,使用
列表视图
从选定的
位图中获取
字节[]
后,您可以在
onItemClickListener
中执行此操作:

Intent intent = new Intent(myListActivity., ImageActivity.class);
Bundle bundle = new Bundle();
bundle.putByteArray("image", imageArray);
intent.putExtras(bundle);
startActivity(intent);
@Override
protected void onCreate(Bundle bundle)
{
    if(bundle != null)
    {
        byte[] image = bundle.getByteArray("image");
        Bitmap receivedImage = BitmapFactory.decodeByteArray(image,0,image.length);

        // Do something with receivedImage
    }
}
基本上,这会启动另一个活动,传递
包中的
字节[]

然后在显示全屏图像的活动中,您可以从
包中获取
字节[]
,并将其解码为
位图

Intent intent = new Intent(myListActivity., ImageActivity.class);
Bundle bundle = new Bundle();
bundle.putByteArray("image", imageArray);
intent.putExtras(bundle);
startActivity(intent);
@Override
protected void onCreate(Bundle bundle)
{
    if(bundle != null)
    {
        byte[] image = bundle.getByteArray("image");
        Bitmap receivedImage = BitmapFactory.decodeByteArray(image,0,image.length);

        // Do something with receivedImage
    }
}

希望这能有所帮助!

非常感谢您的回复,但我认为通过intent传递大量数据不是一个好方法,它肯定会出错,您怎么说?对于大型图像,您是对的。您需要使用静态字段或单例类。您也可以写入文件。单例可能是最佳选择,google“Android中的Singletons”以了解更多信息。谢谢,但当我尝试从列表中的imageview获取DrawingCache时,我得到了一个空值?您能提供帮助吗?尝试
imageview.setDrawingCacheEnabled(true)