2016-07-12 24 views
2

Ich habe mehrere Bilder, die an bestimmten Orten sein müssen, aber getrennte Bilder bleiben. Stellen Sie sich zum Beispiel vor, ich habe ein Bild von einem Gesicht. Die einzelnen Bilder wären die Nase, die Augen, die Lippen usw.Android/XML: Gibt es eine Möglichkeit, Bilder an bestimmten Orten anstatt relativ zu setzen? Können sie auf einem größeren Gerät richtig skaliert werden?

Ich brauche sie an bestimmten Stellen im Gesicht. Das Problem ist zweifach:

1: Ich muss sie an bestimmten Orten setzen. Relatives Layout scheint nicht gut zu funktionieren. Es sei denn, ich tippe die Lücken genau ein.

2: Das andere Problem ist, wenn ich zu einem anderen Gerät wechseln, es verschraubt die Positionierung. Wenn ich manuell in die Ränder eingreife, wenn ich auf ein Tablet ziehe, wird alles wieder vermasselt.

Was ist der beste Weg, dies zu erreichen?

+0

Sie benötigen einen AbsoluteLayout, aber da es so lange als veraltet ist, können Sie versuchen FrameLayout zu verwenden, um es zu simulieren. – RRTW

+0

Können Sie das Rahmenlayout erweitern, um AbsoluteLayout zu simulieren? – jagrakye

+0

siehe meinen Vorschlagscode unter – RRTW

Antwort

0

Sie können verschachtelte lineare Layouts erstellen, Ihre Komponenten einschließen und in jedem von ihnen android:layout_weight verwenden. Wenn Sie hohe Ausrichtungsbeschränkungen haben, erstellen Sie ein separates Layout für jede Komponente und verwenden Sie dementsprechend android:orientation darin. Auf diese Weise haben Sie keine Positionierungsprobleme, wenn Sie Geräte wechseln.

+0

Was fügt das Layoutgewicht hier hinzu? Wie wird es alles in Position halten? – jagrakye

0

EJR

FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
layoutParams.gravity = Gravity.LEFT|Gravity.TOP; 
layoutParams.leftMargin = x; 
layoutParams.topMargin = y; 

imageView.setLayoutParams(layoutParams); 
+0

Ist die Bildansicht in Ihrem Beispiel das "Gesicht" oder die verschiedenen Körperteile, die am Gesicht angebracht sind? Ich bin nicht sicher von deinem Beispiel, wie ich diese ausrichten würde. – jagrakye