请为我的应用烦恼。
我的问题是outofmemoryerror错误。
我尝试解释我的方法
当滚动滚动视图时出现这种错误,其中它是图像视图,当具有23 我粘贴了将bitmap(canvas)插入imageview的类的一部分。 只有这段代码写入imageview。 这是我的xml,当有imageview时。 我调用方法↑(将位图写入imageview) itemimg = new ItemsInPacagesImageView(imglist1,tentocontext,nazovtripu,0,prvy);
- 这个类是我的方法,它将位图放入imglist1(imageview)。 当我尝试把b.recycle();在Bitmap b = Bitmap.createBitmap(srk,vsk,Bitmap.Config.ARGB_8888)之后; 应用程序因使用回收位图等问题而崩溃。 感谢您的任何想法。 try {
Bitmap b = Bitmap.createBitmap(srk, vsk, Bitmap.Config.ARGB_8888);
c = new Canvas(b);
imageview.setImageBitmap(b);
} catch (IllegalArgumentException e) {
}
paint = new Paint();
paint.setAntiAlias(true);
paint.setStyle(Paint.Style.FILL);
for (int i=1;i<(prvy.getNasledujuciitemindex(pacage));i++) {
if (prvy.citajItem(pacage,i)!=null) {
if (prvy.CiZbalene(pacage, i)) {
paint.setColor(Color.argb(255, 130, 130, 130));
c.drawRect(zarovnanieXZACDelLine, zarovnanieYDelLine + (i - 1) * vskconst, zarovnanieXKONDelLine, zarovnanieYDelLine + 2 + (i - 1) * vskconst, paint);
c.drawBitmap(cross, zarovnanieXX, (float) (context.getResources().getDimensionPixelSize(R.dimen.KorekciaLine) + (int) (i - 1) * vskconst), paint);
paint.setColor(Color.argb(255, 130, 130, 130));
DalsiPrvok(paint, c, prvy.citajItem(pacage, i), vsk2 + (i - 1) * vskconst, sizetext, font);
} else {
paint.setColor(Color.BLACK);
DalsiPrvok(paint, c, prvy.citajItem(pacage, i), vsk2 + (i - 1) * vskconst, sizetext, font);
}
} else {break;}
}
imageview.invalidate();
<ScrollView
android:id="@+id/scrollView2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollIndicators="none"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<FrameLayout
android:id="@+id/Pack1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#e1e1e1"
android:paddingBottom="@dimen/Pack_Bottom"
android:visibility="visible">
<LinearLayout
android:id="@+id/linear1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/listPrvy"
android:layout_width="match_parent"
android:layout_height="0dp"
android:clickable="true"
android:longClickable="true"
android:scaleType="fitXY"/>
</LinearLayout>
</FrameLayout>
</LinearLayout>
</ScrollView>
c = new Canvas(b);
imageview.setImageBitmap(b);
答案 0 :(得分:0)
位图需要大量内存。一些提示是:
import io
import pandas as pd
with open(fileloc, encoding='iso-8859-2') as file:
data = file.read().replace('\t', ';')
pd.read_csv(io.StringIO(data), sep=';').to_csv(newfileloc, encoding='iso-8859-2', index=False)
。对于不透明图像,请使用Bitmap.Config.ARGB_8888
Bitmap.Config.RGB_565
。它已在上一个Android版本中弃用,但在旧版本中可以正常使用答案 1 :(得分:0)
当你开始处理图像时,关于android的一个常见问题是,它会导致很多错误的错误并且专注于高分辨率图片。
如果你想避免因Image导致的任何因formemeory错误问题,我建议你使用Picasso: Link