У меня есть 2-мерная. массив изображений. Они программно настроены на RelativeLayout. Но когда я запускаю приложение, они просто не появляются. Это мой код:ImageViews набор программно не отображается
private void setMap(ImageView[][] fields){
RelativeLayout relLay = (RelativeLayout) findViewById(R.id.screen);
OnClickListener listener = new MyOnClickListener();
for (int i = 0; i < numFieldsHeight; i++){
for (int j = 0; j < numFieldsWidth; j++){
ImageView img = new ImageView(MapActivity.this);
img.setImageResource(R.drawable.map);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
if (j != 0)
params.addRule(RelativeLayout.RIGHT_OF, fields[i][j-1].getId());
else
params.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
if (i != 0)
params.addRule(RelativeLayout.BELOW, fields[i-1][j].getId());
else
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
params.height = fieldLength;
params.width = fieldLength;
img.setVisibility(View.VISIBLE);
img.setId(getFieldId(j,i));
img.setOnClickListener(listener);
fields[i][j] = img;
relLay.addView(fields[i][j], params);
}
}
}
и
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000" >
<RelativeLayout
android:id="@+id/relLayDiffSeekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
...
</RelativeLayout>
<RelativeLayout
android:id="@+id/screen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="#222222" >
</RelativeLayout>
</RelativeLayout>
Дополнительные атрибуты "экрана" RelativeLayout устанавливаются в коде. Но это работает, я вижу RelativeLayout, просто отсутствуют ImageViews.
Исключений нет. Пожалуйста, помогите мне!
------! Редактировать! ------
Прошу прощения, этот код на самом деле работает. Проблема в том, что я забыл установить переменную fieldLength на что-то отличное от 0. Большое спасибо за вашу помощь! :)
Что Компоновка делать вам хочу иметь? Это похоже на GridView, так почему же вы не используете GridView? Возможно, relLay.invalidate() покажет добавленные изображения. –
Опубликовать XML-файл деятельности пожалуйста –
invalidate() не помогает – Garrarufa