Wie aufblasen, um neue Kopien einer Bildansicht Objekt auf einem layout?
Was ich versuche zu tun ist, erstellen Sie N (in diesem Fall 9) Kopien der Bildansicht Objekt R.id.tile
-, Platz-jeder von Ihnen an verschiedenen Koordinaten auf das layout und geben jedem seine eigene eindeutige Kennung.
board_layout.xml:
<?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:
@Override
protected void onCreate(Bundle savedInstance)
{ super.onCreate(savedInstance);
setContentView(R.layout.board_layout);
LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View[] tiles = new ImageView[9];
entire_layout = (RelativeLayout)findViewById(R.layout.board_layout);
for(int i = 0; i<tiles.length; i++){
tiles[i] = (ImageView) inflater.inflate(R.layout.board_layout, null);
tiles[i].setId(1000+i);
params = new RelativeLayout.LayoutParams(-1, 345);
params.leftMargin = 32*2*i;
params.topMargin = 34*2*i;
entire_layout.addView(tiles[i]);
}
...
Jedoch, dass ich immer "Quelle nicht gefunden" Fehler in der letzten Zeile: layout.addView(tiles[i]);
..
Irgendwelche Ideen, warum?
(Zwischenfrage: ist RelativeLayout besser als AbsoluteLayout, wenn Sie arbeiten mit Koordinaten?)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Edit:
Ersten erstellen Sie ein layout mit einer Bildansicht mit den Eigenschaften, die Sie wie
Beispiel:
legen Sie die Datei in res/layout/singleimage.xml
Und bläst dann den
ImageView
zu Holen Sie sich die Kopien wie folgtDen Sie festgelegt haben
id
zui
Wert hierAber Sie (falsch) zu versuchen, um es von Ihrem anderen Ressource (die, die Sie wollten zu 'clone'):
Legen Sie stattdessen die
id
manuell wie oben, und dann:Und es gibt keine Notwendigkeit, rufen Sie
findViewById()
layout.addView(tiles[i]);
Linie und sagt Quelle nicht gefunden.tiles[i] = (ImageView) inflater.inflate(R.layout.board_layout, null);
warum ist das root set zunull
? Könnte es etwas anderes sein?