gpt4 book ai didi

android - ImageView 中的 Vimeo 视频缩略图

转载 作者:太空狗 更新时间:2023-10-29 16:10:54 25 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,它应该在 RecyclerView 中显示视频缩略图列表。然后,新 Activity 将播放所选缩略图的视频。如何将 com.vimeo.networking.model.Picture 设置为 Android ImageView

我的代码:

mVimeoClient.fetchNetworkContent(VIDEO_URI, new ModelCallback<VideoList>(VideoList.class) {
@Override
public void success(VideoList videoList) {
ArrayList<Video> videoArrayList = videoList.data;
Video video = videoArrayList.get(0);
ArrayList<com.vimeo.networking.model.Picture> arrayListPics = video.pictures.sizes;
// imageView.setImageDrawable((Drawable) pictureAL.get(0));
imageView.setImageBitmap( (Bitmap) arrayListPics.get(0));
}
@Override
public void failure(VimeoError error) {
}
});
}

setImageBitmap()setImageDrawable() 抛出

java.lang.ClassCastException

最佳答案

vimeo-networking 库中的 Picture 对象(从 arrayListPics.get(0) 返回的对象)不是 Bitmap 因此不能转换为一个。 Picture 对象上有一个名为 mLink 的字段,可以通过 Picture#getLink() 访问它。这将返回一个 URI 字符串,然后您可以在 ImageView 上设置它。

可用于实现此功能的最简单代码是:

    // The ImageView you want to put the thumbnail in
ImageView yourImageView = <insert your ImageView here>;
// The video whose thumbnail you want
Video yourVideo = <insert your Video here>;
// The collection of `Picture` objects associated with this video.
// Each `Picture` in this "collection" is a different size
PictureCollection yourVideosPictures = yourVideo.getPictures();
// Get the first thumbnail/picture from this collection (not recommended)
Picture videoThumbnailPicture = yourVideosPictures.getPictures().get(0);
// The URI to the image of the thumbnail
String videoThumbnailUri = videoThumbnailPicture.getLink();
// Convert the String URI to an actual URI object
final Uri uri = Uri.parse(videoThumbnailUri);
yourImageView.setImageURI(uri);

我说这是最简单的,因为在设置图像 uri 时您应该做更多的事情。一件事是你应该根据 ImageView 的宽度从 yourVideosPictures 中抓取 Picture,这样你就不会不必要地拉下一个图片比您需要的大。

您还应该可能不只是将图像 URI 直接设置到 yourImageView 上,而是您应该使用一些图像缓存库(或一些缓存实现)。

我建议研究 Picasso、Glide 或 Fresco。或者只是谷歌“Android 上的图像缓存”。

关于android - ImageView 中的 Vimeo 视频缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51173339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com