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

时间:2013-08-01 13:30:53

标签: android android-listview

我的app中有一个Listview,它由textview和imageview填充自定义适配器和自定义对象,现在我希望当我点击listview上的图像时它应该在另一个活动中作为全屏打开,应该怎么做我这样做?

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

这是代码 - >

@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元素中提供文本。 这是代码 - &gt;

  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();
                }
            });

1 个答案:

答案 0 :(得分:1)

在使用ListView的活动内部,您可以在onItemClickListener中使用byte[]中的Bitmap后执行此操作:

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

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

然后在显示全屏图片的活动中,您可以从byte[]中获取Bundle并将其解码为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
    }
}

希望有所帮助!