几天来,我一直在这里和互联网上寻找许多帖子的解决方案,以解决我加载或移动大型 jpg 图像(现在已定位为可绘制资源)的问题,我认为是时候问问自己了altought有许多非常相关的问题和解决方案。
我正在使用 OpenGL 开发 3D 地形模拟,问题是我正在使用一个非常大的 jpg 图像(2048x2048 = 1,94 MB)作为地形纹理。
让我们看一下我做过的一些解决方法:
第一个:
Bitmap terrainBitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.terrain, options);
这个立即崩溃,可能是因为图像太大
第二:
Uri path = Uri.parse("android.resource://com.jgc.my_app/" + R.drawable.terrain);
URL ulrn;ulrn = new URL(path.getPath());
HttpURLConnection con = (HttpURLConnection)ulrn.openConnection();
InputStream is = con.getInputStream();
Bitmap bmp = BitmapFactory.decodeStream(is);
那可能是一次非常愚蠢的尝试
第三:
Bitmap terrainBitmap = BitmapFactory.decodeFile("android.resource://com.jgc.my_app/terrain.jpg", options);
但结果我得到了一个非常令人沮丧的空位图......
考虑到的其他解决方法是,由于可绘制资源在应用程序“内部”,为什么不将它们移动到 sd 卡并在那里解码文件,但是,将位图或可绘制资源移动到我已经提供的 sdcard 的解决方案总是找到用户 BitmapFactory.decodeResource(getResources(), R.drawable.terrain, options);
我很感激任何建议,从那时起我将在我的项目中处理其他任务。
提前致谢