【发布时间】:2017-09-16 09:29:14
【问题描述】:
我正在尝试在 libgdx 的游戏中显示用户配置文件图标。在代码的 android 端,我可以使用 mParticipants.get(i).getIconImageUri() 获取播放器的图像 uri,这给了我 Uri。但是我找不到将 Uri 转换为 Texture 的方法,我可以在我的 libgdx 代码中使用它。
我首先尝试使用代码从 Uri 获取位图
Bitmap bitmap = null;
try {
InputStream inputStream = application.getContentResolver().openInputStream(imgUri);
bitmap = BitmapFactory.decodeStream(inputStream);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
但这给了我一个安全错误。
google 上的其他答案向我展示了方法,所有这些都包括在 Android ImageView 中显示图像的方法,但我需要一个可以在我的 libgdx 游戏中使用的纹理来显示图像
我也尝试向我的清单添加以下权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
即便如此,我仍然遇到安全错误。请帮我解决这个问题
【问题讨论】:
-
安全异常可能是由于您使用的是 targetSDK >=23,这需要 Dangerous Permissions 的运行时权限。
-
位图 ??您如何在核心模块中使用,可能您可以通过与核心模块的接口从android获取String,然后从链接地址获取纹理数据,然后将数据保存在本地fileHandler中并从本地文件中获取该数据并填充到您的项目中。跨度>
-
@AbhishekAryan 位图可以轻松转换为 libgdx 纹理,然后可以在核心模块中用作 ** new Texture(bitmap.getWidth(), bitmap.getHeight(), Pixmap.Format.RGBA8888) ** 用于获取 http url 的方法已弃用
-
你觉得这个
new Texture(bitmap.getWidth(), bitmap.getHeight(), Pixmap.Format.RGBA8888)怎么样,你正在将Bitmap转换成Texture。我不这么认为:)
标签: java android opengl-es libgdx google-play-games