2014-10-21 2 views
0

На данный момент я работаю над приложением, которое должно изменить размер изображения небольшими шагами. Но на Android куча растет с каждым действием, которое я беру, и, наконец, я получаю OutOfMemoryError. Пожалуйста, посмотрите мой файл .js:Titanium на Android: OutOfMemoryError

scaleValue = newScaleValue; 
var resizedBlob = originalBlob.imageAsResized(originalImageWidth * parseFloat(scaleValue), originalImageHeight * parseFloat(scaleValue)); 
if (Ti.Platform.osname == "android") { 
    $.androidPicture.setImage(resizedBlob); 
    //$.androidPicture.setZoom(scaleValue); 
} else { 
    $.iosPicture.setImage(resizedBlob); 
} 

Часть iOs работает как очарование. Я знаю, что в (родном) Android вам нужно переработать ваши растровые изображения, возможно ли это и в титане?

+0

Выполнение растровых операций на титане является причиной того, что я больше не использую его –

+0

Так как Android 3.0 не нужно перерабатывать растровые изображения, gc делает это за вас. Проблема в том, что это невозможно, если вы держитесь за ссылки. Не зная своего кода, я думаю, вы каким-то образом владеете несколькими ссылками растрового изображения – for3st

+0

@ for3st: есть ли у вас веб-ресурс, где я мог бы что-то прочесть? И как мне удалить ссылку, когда ImageView определен в xml-проекте моего сплава? –

ответ

0

Я, наконец, удалил неродную функцию масштабирования, которая вызвала исключения OutOfMemory. Вместо этого я использовал модуль TiTouchImageView, который можно найти here. Если у вас возникли проблемы с импортом/использованием, обратитесь к моему other question.