2 Stimmen

Bild in der Mitte eines anderen Bildes ausrichten

Ich habe mehrere Bilder, die in einer bestimmten Weise ausgerichtet werden müssen, das 2. ImageView muss zentriert zum ersten ImageView ausgerichtet werden. Wie kann das erreicht werden?Bildbeschreibung hier eingeben

Ich habe ein Bild zur Referenz angehängt.

Derzeit halte ich ein verstecktes View in der Mitte von Obj1 und richte den oberen Rand von Obj2 daran aus, aber es scheint nicht zu funktionieren.

1voto

She Smile GM Punkte 1322

Warum holst du dir nicht einfach das paddingTop von obj3 und die Hälfte davon wird das paddingTop oder marginTop von obj1 sein.

0voto

Veaceslav Gaidarji Punkte 4223

Verwenden Sie RelativeLayout und legen Sie die Ausrichtung für ImageViews fest:

0voto

Anukool Punkte 5181

Sie können dies selbst ausprobieren und ich hoffe, dass es Ihnen hilft, die Ansichten gemäß Ihren Anforderungen zu erhalten-

Erstellen Sie activity_main.xml

Erstellen Sie imagemiddle.xml

In der Hauptaktivität -

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

}

Und -

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    // TODO Auto-generated method stub
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        RelativeLayout rlParent = (RelativeLayout) findViewById(R.id.rlBase);
        int height = rlParent.getMeasuredHeight() / 2;
        Log.d("Height:", height + "");
        rlParent.getLayoutParams().height = height
                + rlParent.getMeasuredHeight();
        rlParent.invalidate();// Ändern Sie die Höhe des RelativeLayout programmgesteuert

        // Layout-Parameter für das mittlere Bild--
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        params.addRule(RelativeLayout.CENTER_HORIZONTAL,
                RelativeLayout.TRUE);
        LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
        ImageView ivMiddle = (ImageView) inflater.inflate(
                R.layout.imagemiddle, null);
        params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM,
                RelativeLayout.TRUE);
        ivMiddle.setLayoutParams(params);
        rlParent.addView(ivMiddle, params);

    }
}

Dies ist nicht die genaue Antwort; Aber dies sollte Ihnen helfen, das gewünschte Ergebnis zu erhalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X