我已将所有矢量资源xml文件存储在firebase存储中。现在,我想下载它们并将每个文件添加到ImageButton
。但为此,我必须将xml文件转换为drawable文件,但Drawable.createFromXml()
或Drawable.createFromPath()
都不起作用。
使用Drawable.createFromXml()
时遇到的问题是我不知道应该输入什么解析器。
是否可以在运行时从xml文件(svg文件)创建drawable,或者你们中的任何一个人都知道更好的方法。
这是目前的代码:
private void getData(DataSnapshot dataSnapshot){
HashMap<String,Drawable> testMap = new HashMap<>();
for (DataSnapshot ds: dataSnapshot.getChildren()){
testMap.put(ds.getKey().toString(), Drawable.createFromPath(generateXmlFile(ds.getValue().toString())));
}
}
private String generateXmlFile(String downloadXml){
StorageReference xmlFile = storageInstance.getReferenceFromUrl(downloadXml);
try {
File tmpFile = File.createTempFile( "test","xml");
xmlFile.getFile(tmpFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
@Override
public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
}
});
return tmpFile.getAbsolutePath();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}