列表视图中的OnItemClick显示另一个活动中的图像,没有任何路径/src



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

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

这是代码-->

@Override
                public void onBinaryMessage(byte[] image)
                {

                Bitmap receivedImage=BitmapFactory.decodeByteArray(image,0,image.length);
                    float scale=1;
                int width  = receivedImage.getWidth();
                    int height = receivedImage.getHeight();
                    float scaleHeight = (float)height/(float)200;
                    float scaleWidth  = (float)width /(float)200;
                    if (scaleWidth < scaleHeight) 
                        {scale = scaleHeight;}
                    else
                    {
                        scale = scaleWidth;
                    }
                   Bitmap bitmaped = Bitmap.createScaledBitmap(receivedImage, (int)(width/scale), (int)(height/scale), true);
                addImage(new Message(bitmaped,false,false));

现在,当点击我应该传递给意图什么时,因为我可以在列表视图中获得这个图像,根据我当前的代码,我可以在listview textView元素中吐司Text。这是代码-->

  listView1.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    Log.v("Module Item Trigger", "Module item was triggered");

                   Toast.makeText(getApplicationContext(),"this is ==>",Toast.LENGTH_SHORT).show();
                }
            });

在具有ListView的"活动"内部,一旦从所选Bitmap:中获得byte[],就可以在onItemClickListener中执行此操作

Intent intent = new Intent(myListActivity., ImageActivity.class);
Bundle bundle = new Bundle();
bundle.putByteArray("image", imageArray);
intent.putExtras(bundle);
startActivity(intent);

基本上,这会启动另一个"活动",在Bundle中传递byte[]

然后,在显示全屏图像的"活动"中,您可以从Bundle中取出byte[],并将其解码为Bitmap:

@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
    }
}

希望能有所帮助!

最新更新