libGDX:我如何告诉核心游戏getIconImageUri()并将其作为Image actor用于我的游戏

时间:2015-12-13 01:41:44

标签: java android libgdx google-play-services

我在核心项目上创建了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>

1 个答案:

答案 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可用的内容。