这段代码对我有用,可以将IconUri加载到ImageManager中并保存返回的Drawable,以便我可以将Image加载到LibGDX中。
不幸的是,自从Google更新到最新的库(21天前发布)以来,此方法已停止工作,我没有收到堆栈跟踪或错误消息,除了弹出对话框,说“不幸的是,Google Play服务已停止“。
非常奇怪的是,Google Play服务不会停止(我的游戏仍在处理收到的邮件,并在logcat中发送),直到我在该对话框上点击“确定”,然后Google Play服务才会关闭。
我会回到旧版本的libary,但是这个新版本的表现也更好,发送和接收的是RealTimeReliable消息。
任何人都可以看到为什么这会停止使用新库吗?
此外,如果有人对任何其他方式获得加载到Android中的玩家头像有任何反馈,然后保存到libGDX的“本地”目录,以便可以将其拉入并作为Drawable放入libGDX中,非常感谢!
另外,请注意
@Override
public void requestPic(final String participantID){
//try to pull the pic out
dLog("attempting to request picture");
if(CheckRoomisDisconnected()) {
return;
}
for (final Participant p : mRoomCurrent.getParticipants()) {
if (p.getParticipantId() == participantID){
dLog("found matching particpantID");
try {
runOnUiThread(new Runnable(){
//@Override
public void run(){
ImageManager IM = ImageManager.create(activityContext);
IM.loadImage(new ImageManager.OnImageLoadedListener() {
@Override
public void onImageLoaded(Uri arg0, Drawable drawable) {
dLog("Holy Moly it seems to work");
if(drawable == null) {
mGHInterface.picLoaded(participantID);
} else {
Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap();
try {
FileOutputStream out = openFileOutput("pic" + participantID + ".png", Context.MODE_MULTI_PROCESS);
bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
mGHInterface.picLoaded(participantID);
} catch (Exception e) {
e.printStackTrace();
dLog(e.getStackTrace().toString());
}
}
}
}, p.getIconImageUri());
}
});
}catch (final Exception ex){
dLog(ex.getStackTrace().toString());
ex.printStackTrace();
}
}
}
}