这段代码对我有用,可以将 IconUri 加载到 ImageManager 中并保存返回的 Drawable,以便我可以将 Image 加载到 LibGDX 中。
不幸的是,自从从 Google 更新到最新的库(21 天前发布)后,这个方法已经停止工作,我没有收到任何堆栈跟踪或错误消息,除了一个弹出对话框指出“不幸的是,Google Play 服务已停止”。
真正奇怪的是,Google Play 服务并没有停止(我的游戏仍在处理接收到的消息,并在 logcat 中发送),直到我在该对话框上点击“确定”,然后 Google Play 服务关闭。
我会回到旧版本的库,但这个新版本在发送和接收 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();
}
}
}
}