我必须这样创建布局:组织许多意见
正如你所看到的,所有视图(图像,按钮)是一个滚动屏幕。这是一个专辑的布局。
的问题是当我展示这张专辑屏幕,许多图像,将其与内存不足的错误崩溃。
我选择的方式是把所有的人都在LinearLayout
一个ScrollView
内。我知道如果我们需要展示很多视图,我们可以使用listview,但我不能用ListView
来组织所有这些视图。
谁能帮助我?
我必须这样创建布局:组织许多意见
正如你所看到的,所有视图(图像,按钮)是一个滚动屏幕。这是一个专辑的布局。
的问题是当我展示这张专辑屏幕,许多图像,将其与内存不足的错误崩溃。
我选择的方式是把所有的人都在LinearLayout
一个ScrollView
内。我知道如果我们需要展示很多视图,我们可以使用listview,但我不能用ListView
来组织所有这些视图。
谁能帮助我?
你的问题是与许多位图。请阅读这篇文章,以解决它:https://developer.android.com/training/displaying-bitmaps/index.html
我能想到的两个选项:
组织的项目,使得在ListView
每个项目视图都有一组交错元素最终他们可以阻挡在外到ListView
元素。每个N图像的顶部/底部将不得不在视图边界上排列。您也许可以将4-6张图像放在交错的图案中,以便仍然可以实现效果,但是这些元素会变成可以回收的视图。
使用两个ListView
元素并排。您可以将OnScrollListener
传递给每个ListView
以同步滚动动作,而不管哪一个被触摸,从而表现出它是一个视图。通过这种方式,您可以完全交错图像,但由于必须从一个数据源提供两个视图,因此适配器需要更多工作。
对于制作这种类型的视图,你必须使用线性布局。 像这里
线性布局(垂直)
标题
图像0 线性布局水平
{
线性布局垂直
按钮按钮
图像0 图像0 ...
}
线性布局垂直
{
图像0 图像
...
}
您可以使用inSampleSize来减少内存占用。
这里是我的代码
public static Bitmap decodeAndResizeFile(File f) {
try {
// Decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(new FileInputStream(f), null, o);
// The new size we want to scale to
final int REQUIRED_SIZE = 70;
// Find the correct scale value. It should be the power of 2.
int width_tmp = o.outWidth, height_tmp = o.outHeight;
int scale = 1;
while (true) {
if (width_tmp/2 < REQUIRED_SIZE || height_tmp/2 < REQUIRED_SIZE)
break;
width_tmp /= 2;
height_tmp /= 2;
scale *= 2;
}
// Decode with inSampleSize
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
} catch (FileNotFoundException e) {
}
return null;
}
在这里,它会使用inSampleSize
解码图像和此代码将找到最好的inSampleSize
值你。
它的工作对我罚款。
如果您不想使用上面的代码,您还可以使用bitmap.recycle()
和System.gc()
来释放未使用的内存。但是,上面的一个对我来说工作正常。你可以使用两者中的任何一个。
objbitmap.recycle();
objbitmap = null;
System.gc();
希望这可以解决问题!
您是否使用位图来显示图像?很多时候,我们正面临OutOfMemory问题,因为位图 – 2013-03-07 04:02:32
如果你有错误,那么你的代码在那里你设置imagebitmap ... – QuokMoon 2013-03-07 04:17:31
@AkbariDipali正确,我与许多位图工作。 发送至: altaf我的应用程序工作正常,如果图像在20左右,但在切换后一些屏幕或图像数量变大 – 2013-03-07 04:44:12