我在核心项目上创建了IGoogleServices
接口:
public interface IGoogleServices {
.....
public String getPlayerName();
}
然后我将以下代码放在android项目的MainActivity
中的implementaion方法中:
private String name;
@Override
public String getPlayerName() {
runOnUiThread(new Runnable() {
public void run() {
name = Games.Players.getCurrentPlayer(_gameHelper.getApiClient()).getDisplayName();
}
});
return name;
}
这是将MyGame
玩家姓名称为String
的简单方法:
lblPlayerName = new Label("" + googleServices.getPlayerName(), style);
stage.addActor(lblPlayerName);
但是我无法在图片中执行此操作。
在之前的String
案例中,我尝试在图片案例中执行此操作:
private Uri imgUri;
@Override
public void requestImgProfile() {
runOnUiThread(new Runnable() {
public void run() {
imgUri = Games.Players.getCurrentPlayer(_gameHelper.getApiClient()).getIconImageUri();
ImageManager manager = ImageManager.create(MainActivity.this);
manager.loadImage(new ImageManager.OnImageLoadedListener() {
public void onImageLoaded(Uri arg0, Drawable drawable, boolean arg2) {
try {
Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
FileOutputStream out = new FileOutputStream(imagePath);;
out = openFileOutput(imgUri + ".png", Context.MODE_MULTI_PROCESS);
bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}, imgUri);
};
});
}
我的imgUri
是:
content://com.google.android.gms.games.background/images/26s5523b/2633
什么是类型(如String
)我可以告诉MyGame
它和libGDX库可以用它来处理它?</ p>
答案 0 :(得分:1)
如果您有图片URI,可以通过以下方式获取位图:
Uri imgUri;
Bitmap bitmap = null;
try {
InputStream inputStream = getContentResolver().openInputStream(imgUri);
bitmap = BitmapFactory.decodeStream(inputStream);
} catch (FileNotFoundException e) {
}
这适用于file://
URI或content://
URI。
然后使用this answer等解决方案将Bitmap转换为libGDX可用的内容。