Я пытаюсь установить изображение в качестве фона для представления (PiePlot), но я получаю исключение OutOfMemory
.Ошибка OutOfMemory при настройке фона
Bg размер изображения 170kb.
Я попробовал 5kb образец изображения для фона, и он работает без исключения.
Я попробовал следующее:
@Override
protected void onDestroy() {
super.onDestroy();
unbindDrawables(mView);
System.gc();
}
private void unbindDrawables(View view) {
if (view.getBackground() != null) {
view.getBackground().setCallback(null);
}
if (view instanceof ViewGroup) {
for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
unbindDrawables(((ViewGroup) view).getChildAt(i));
}
((ViewGroup) view).removeAllViews();
}
}
Но это полезно, если/когда onDestroy()
называется. Но при запуске приложения это не сработает и, следовательно, произойдет сбой приложений.
Я попытался это также:
BitmapDrawable bitmapDrawable = (BitmapDrawable) ctx.getResources().getDrawable(R.drawable.bg2);
BitmapFactory.Options bitopt = new BitmapFactory.Options();
bitopt.inSampleSize = 10;
plot.setBackgroundImage(bitmapDrawable); //plot is PiePlot object
Но это же результат, т.е. сбой приложения.
Любая помощь приветствуется.
Какой параметр следует передать этому методу? У меня есть объект «BitmapDrawable». И как решить ** inSampleSize Factor **, вы предложили «4» здесь ... – GAMA
inSampleSize означает, что ваше изображение уменьшит *** раз .... вот я даю 4, что означает, что мое изображение уменьшится в 4 раза до фактического изображения, которое вы должны передать своему изображению в качестве параметра –
передать свое изображение бимама ...... –