How to dynamically create copies of ImageView objects

Put problem concerning Views, Layouts and other XML-Resources (like AndroidManifest) here.

How to dynamically create copies of ImageView objects

Postby LanguidLegend » Sun Mar 31, 2013 11:31 am

What I am trying to do is create N (in this case 9) copies of the ImageView object R.id.tile, place each of them at different coordinates on the layout, and give each its own unique identifier.

board_layout.xml:
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/backgroundcolor"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/topbar"
        ... >

        <ImageButton
            android:id="@+id/imagebutton"
            ... />

    </LinearLayout>

    <RelativeLayout
        android:id="@+id/board"
        android:layout_width="match_parent"
        android:layout_height="345dp"
        android:layout_centerVertical="true"
        android:background="@drawable/wwfboard" >

        <view class="languid.legend.xsolver.DrawView"
            android:id="@+id/myView"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />

        <ImageView
            android:id="@+id/tile"
            android:layout_width="21dp"
            android:layout_height="21dp"
            android:src="@drawable/tile" />
    </RelativeLayout>

</RelativeLayout>


BoardLayout.class:
Code: Select all
@Override
protected void onCreate(Bundle savedInstance)
{   super.onCreate(savedInstance);
    setContentView(R.layout.board_layout);
    entire_layout = (RelativeLayout)findViewById(R.layout.board_layout);
    inner_layout = (RelativeLayout)findViewById(R.id.board);
    View[] tiles = new ImageView[9];


    for(int i = 0; i<tiles.length; i++){
        tiles[i] = (ImageView)findViewById(R.id.tile);
        tiles[i].setId(i);
        params = new RelativeLayout.LayoutParams(-1, 345);
        params.leftMargin = 32*2*3;
        params.topMargin = 34*2*3;
        layout.addView(tiles[i].findViewById(R.id.tile));
    }
    ...

However, I keep getting "Source not found" errors on the last line: layout.addView(tiles[i].findViewById(R.id.tile));..

Any ideas why?

(Side question: is RelativeLayout better than AbsoluteLayout if you're working with coordinates?)
LanguidLegend
Freshman
Freshman
 
Posts: 4
Joined: Sun Oct 09, 2011 1:38 am

Top

Return to View, Layout & Resource Problems

Who is online

Users browsing this forum: No registered users and 5 guests