我有ViewPager
Fragment
来自PagerAdapter
。 Fragment
有4个ImageViews
,我想用我的Drawable文件夹中的图片设置背景。可抽出物大约80dp,每个大小约30kb。我使用以下内容填充ImageViews
,其中MyIMGS是ImageViews
的数组。
switch (Mynum)
{
case 0:
int Array1[] = args.getIntArray("Array_A");
for(int i=0;i<Array1.length;i++)
{
MyIMGS[i].setBackgroundResource(Array1[i]);
}
break;
case 1:
int Array2[] = args.getIntArray("Array_A");
for(int i=0;i<Array2.length;i++)
{
MyIMGS[i].setBackgroundResource(Array2[i]);
}
break;
}
第一个问题是经过一段时间后来回按下一个很好的消息outofMemory。 我尝试了以下解决方案
private static Bitmap decodeResource(Resources res, int resId ,int reqWidth,int reqHeight)
{
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(res, resId, options);
// Calculate inSampleSize
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
return BitmapFactory.decodeResource(res, resId, options);
}
和
IMGS[i].setImageBitmap(decodeResource(getResources(), Array1[i], 100, 100));
通过使用上面的新问题,我的来自Drawable文件夹的20个图像在4个图像视图中一个显示在另一个上面。它就像For循环不是为MyIMGS数组执行而是为每个元素分别执行! 我的问题是:对于这样的小文件,我需要解码资源,如果是,为什么图像以这种方式显示。
答案 0 :(得分:0)
我怀疑MyIMGS的数组元素是在同一位置定义的ImageView。也许您应该发布MyIMGS及其布局xml文件的代码。