Android 从listview onclicklistener获取图像
我是一个初学者,试图为一个班级制作一个简单的音乐播放器应用程序,我的listview和onclicklistener工作得很好,但我不知道如何从单击的listview项目中提取imageview可绘制图像,并在我的其他活动中显示该图像,以进行“正在播放”类型的操作 为什么这样不行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) {
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);
}