【发布时间】:2015-01-15 04:43:27
【问题描述】:
我正在开发一个非常简单的应用程序,它显示一个 jpg,它可以在垂直轴上滚动。 我希望这张图片非常大(20000x1000 像素),但是,当我尝试在我的设备上运行该应用程序时,它说“位图太大而无法上传到纹理中”。 有没有办法在 android 应用程序中显示这种大小的图像? 如果没有,是否可以将图像分成几段,然后滚动到底部 一个部分,我会继续另一个?
【问题讨论】:
我正在开发一个非常简单的应用程序,它显示一个 jpg,它可以在垂直轴上滚动。 我希望这张图片非常大(20000x1000 像素),但是,当我尝试在我的设备上运行该应用程序时,它说“位图太大而无法上传到纹理中”。 有没有办法在 android 应用程序中显示这种大小的图像? 如果没有,是否可以将图像分成几段,然后滚动到底部 一个部分,我会继续另一个?
【问题讨论】:
引用你的问题的答案here:
所有的渲染都是基于 OpenGL,所以你不能超过这个限制。 请注意,这将占用大量内存。有了这么大 图像,如果你想放大,在移动环境中 严重的内存限制,你应该设置一个类似于什么的系统 例如,您在谷歌地图中看到。随着图像分成几个 件,以及几个定义。
【讨论】:
您可以将图像分割成 128x128 的块。将它们添加到一个数组中,然后循环该数组以创建一个 ImageView 并用当前提供的图像填充。
一些伪代码是:(对不起,我这几天一直在编写 PHP 应用程序)
Private BitMap[] imageArray = {your bitmaps from internal or external storage};
For(BitMap bm in imageArray) {
// create a new image view here, use the correct layout params or use a parrent grid view.
imageView.setBitMap(bm)
}
现在再一次,我对那个伪代码有 0% 的把握,但它应该可以帮助你。
【讨论】: