这是一个使用MediaBrowserService的Android汽车媒体应用程序,我正试图使用可绘制文件夹中的图像设置MediaItem MediaDescription图标。
这是我用的密码
@Override
public void onLoadChildren(final String parentMediaId, final Result<List<MediaBrowser.MediaItem>> result) {
// Return the children of the given parent media item
List<MediaBrowser.MediaItem> children = getChildren(parentMediaId);
result.sendResult(children);
}
private List<MediaBrowser.MediaItem> getChildren(String parentId) {
int drawableResourceId = R.drawable.finallogo;
Uri drawableUri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://"
+ "com.examole.app" + "/" + drawableResourceId);
List<MediaBrowser.MediaItem> children = new ArrayList<>();
if (parentId.equals("root")) {
children.add(new MediaBrowser.MediaItem(new MediaDescription.Builder()
.setMediaId("media_item_1")
.setTitle("Browsable Item")
.setSubtitle("test")
.setIconUri(drawableUri)
.build(),MediaBrowser.MediaItem.FLAG_BROWSABLE ));
}else{
children.add(new MediaBrowser.MediaItem(new MediaDescription.Builder()
.setMediaId("media_item_1")
.setTitle("Playable Item")
.setSubtitle("test2")
.setIconUri(drawableUri)
.build(), MediaBrowser.MediaItem.FLAG_PLAYABLE));
}
return children;
}
文件上说,
必须使用ContentResolver.SCHEME_CONTENT或ContentResolver.SCHEME_ANDROID_RESOURCE将媒体项的图稿作为本地URI传递。此本地URI必须解析为可在应用程序资源中绘制的位图或矢量。对于MediaDescriptionCompat
并且此代码已经使用了ContentResolver,
Uri drawableUri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://"
+ "com.examole.app" + "/" + drawableResourceId);
图像是否需要在从本地可绘制文件夹加载之前缓存?或者有人可以指定一种方法来设置本地可绘制图像到媒体项目与onLoadChidren方法。谢谢。
1条答案
按热度按时间acruukt91#
如果是来自drawable的文件,则使用此代码。