Android 从listview onclicklistener获取图像

Android 从listview onclicklistener获取图像,android,listview,imageview,onclicklistener,Android,Listview,Imageview,Onclicklistener,我是一个初学者,试图为一个班级制作一个简单的音乐播放器应用程序,我的listview和onclicklistener工作得很好,但我不知道如何从单击的listview项目中提取imageview可绘制图像,并在我的其他活动中显示该图像,以进行“正在播放”类型的操作 为什么这样不行 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

我是一个初学者,试图为一个班级制作一个简单的音乐播放器应用程序,我的listview和onclicklistener工作得很好,但我不知道如何从单击的listview项目中提取imageview可绘制图像,并在我的其他活动中显示该图像,以进行“正在播放”类型的操作

为什么这样不行

    public void onItemClick(AdapterView<?> parent, View view, int position, 
        long id) {
        Object listItem = listView.getItemAtPosition(position);
        startActivity(new Intent(MainActivity.this, NowPlaying.class));
        long artView = listView.getItemIdAtPosition(0);
        ImageView nowPlayingArt = 
       (ImageView)findViewById(R.id.now_playing_image);
        nowPlayingArt.setImageDrawable(artView);
public void onItemClick(AdapterView父视图、视图、int位置、,
长id){
对象listItem=listView.getItemAtPosition(位置);
startActivity(新意图(MainActivity.this,NowPlaying.class));
long artView=listView.GetItemIDataPosition(0);
ImageView nowPlayingArt=
(ImageView)findViewById(R.id.now\u playing\u image);
现在播放art.setImageDrawable(artView);

您可以获取ImageView的位图,将其流式传输到byteArray,并将其作为额外内容:

@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
    ImageView image = view.findViewById(R.id.now_playing_image);

    Bitmap bitmap = ((BitmapDrawable) image.getDrawable()).getBitmap();
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
    byte[] byteArray = stream.toByteArray();

    Intent intent = new Intent(MainActivity.this, NowPlaying.class);
    intent.putExtra("picture", byteArray);
    startActivity(intent);
}

请发布完整的代码并正确编写问题,以便理解。在适配器中只需调用
view.setTag(您的\u image\u id)
。然后在
onItemClick
中通过
view.getTag()获取您的\u image\u id
;我在listview中有几个不同视图的不同图像,因此我需要能够从列表中单击的特定视图中获取图像
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_now_playing);

    ImageView imageView = (ImageView) findViewById(R.id.imageView);

    byte[] byteArray = getIntent().getByteArrayExtra("picture");
    Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
    imageView.setImageBitmap(bmp);
}