Как правильно выводить/менять данные (images) в activity
Добавлено: 25 мар 2015, 14:18
Всем привет!
Есть приложение, в котором есть 7 кнопок (неделя1, неделя2 ..). При нажатии на каждую из них, загружается единая для всех кнопок активити, выводящая несколько связанных между собой картинок.
В первый раз я делал очень длинную картинку, так вот, андройду это не понравилось и он такуе не отображал (если только она не была меньше ~1000px по [вроде] по высоте). После этого я разбил картинку на более мелкие (по высоте) и все стало ок. Но когда таких картинок много (13-ую связанную картинку, андройд уже не может переварить) в одной активити, приложение аварийно завершается.
Алгоритм работы:
При нажатии на кнопку, загружается единая для всех кнопок активити, в ней первым делом находится linearLayout из main.xml (в файле layout обернут вьюхой scrollView).
Определяется какая кнопка была нажата и в зависимости от ее id, из файла array.xml загружается массив, содержащий список файлов.
Эти файлы в цикле перебираются и цепляются в layout-ту
Плюс, в самом низу создаются 2 кнопки, при нажатии на которые юзер перемещается к меньшей или больше недели. Это происходит в той же активити.
При нажатии на эти кнопки, приложение вываливается, когда переходишь к недели, у которой подгружается более 12 связанных картинок.
Вопрос, из-за чего это может происходить? Пока мне видится что это из-за слишком большого кол-ва картинок, может не хватает памяти .....
Как это можно отследить? (try - catch молчит)
Help!
P.S. Программирование под Андройд начал осваивать 3 недели назад.
Есть приложение, в котором есть 7 кнопок (неделя1, неделя2 ..). При нажатии на каждую из них, загружается единая для всех кнопок активити, выводящая несколько связанных между собой картинок.
В первый раз я делал очень длинную картинку, так вот, андройду это не понравилось и он такуе не отображал (если только она не была меньше ~1000px по [вроде] по высоте). После этого я разбил картинку на более мелкие (по высоте) и все стало ок. Но когда таких картинок много (13-ую связанную картинку, андройд уже не может переварить) в одной активити, приложение аварийно завершается.
Алгоритм работы:
При нажатии на кнопку, загружается единая для всех кнопок активити, в ней первым делом находится linearLayout из main.xml (в файле layout обернут вьюхой scrollView).
Код: Выделить всё
<ScrollView
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:fadeScrollbars="false"
android:id="@+id/scrollInfo">
<!--android:scaleType="fitXY"-->
<LinearLayout
android:id="@+id/layoutImages"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</LinearLayout>
</ScrollView>
Код: Выделить всё
<string-array name="week1">
<item>week1_1</item>
<item>week1_2</item>
.....
</string-array>
<string-array name="week2">
<item>week2_1</item>
<item>week2_2</item>
......
</string-array>
Код: Выделить всё
for (int cnt = 0; cnt < weekArr.length; cnt++) {
imgView = new ImageView(this);
resId = getResources().getIdentifier(weekArr[cnt], "drawable", getPackageName());
imgView.setImageResource(resId);
imgView.setAdjustViewBounds(true);
imgView.setScaleType(ImageView.ScaleType.FIT_XY);
imgView.setMaxWidth(R.dimen.max_width);
layoutImages.addView(imgView, lParams);
}
При нажатии на эти кнопки, приложение вываливается, когда переходишь к недели, у которой подгружается более 12 связанных картинок.
Вопрос, из-за чего это может происходить? Пока мне видится что это из-за слишком большого кол-ва картинок, может не хватает памяти .....
Как это можно отследить? (try - catch молчит)
Help!
P.S. Программирование под Андройд начал осваивать 3 недели назад.