Apologies for the confusing header. My problem is explained better in the following image:
I need the green Button to be aligned with the top of the Image, but the Image is inside another Layout. Is this possible?
It can be done in code if necessary; XML is not required. I am targeting Android 2.2 and newer.
EDIT:
My current implementation is to simply set the MarginTop-property of the Button, but this is inconvenient when I need to change the sizes of the text inside the LinearLayout, which I plan to do depending on the screen size.
I think it can be solved by somehow finding the Y coordinate of the Image, perhaps by adding the heights of the TextViews, and then setting this as the MarginTop for the Button, but this sounds cumbersome. Is there really no other option?
The LinearLayout is going to be placed inside a ViewPager (with multiple views, all having an image in the same position), which is why I can’t do it the way preeya explains.
It’s possible but more complicated than including the button into the same layout. If you definitely don’t want to do that, you can’t use XML (which is always faster). You have to do 3 steps in your code:
1.) Wait until the view is drawn
That approach works best for me, but if you have troubles – here are some alternatives.
There are also [more solutions][2] out there when you use API level 11 and higher…
2.) Get the top-position of your imageView
3.) Add or adjust the button in order to be aligned with the image
This step would be smoother by using API 11: button.setTop(topCoordinate)
Of course you can shorten all of it and put it in a singele method, just thought that 3 steps are better to explain. Hope that code helps to get started!