I have a RelativeLayout
with views aligned relative to it (their parent), using (e.g.):
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT);
textView.setLayoutParams(layoutParams);
and now I wonder, how can I position the View relative to the bottom of its parent, but at an offset (e.g. 100 pixels above the bottom, 20 pixels from the left, etc.), or similarly with the center (30 pixels under the center)?
I've tried setting the margins of the View (e.g.):
layoutParams.setMargins(140, 0, 0, 0);
before applying it to the textView
, but that didn't work.
It seems like an extremely useful way to align views for various screen sizes.
It's important for me to achieve this in code, without using xmls.
Thanks!
you have 2 ways, the easies is using a anchor empty view positioned at the center
<View
android:id="@+id/anchor"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_centerInParent="true" />
<TextView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/anchor"
android:layout_marginBottom="20dp"
android:text="hello world!"/>
Or you can center your view and use pading por positioning (you must double the padding used because it overflows below the center of the screen)
<TextView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:paddingBottom="40dp"
android:text="hello world!"/>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With