How to take a component position?
If we need to place another element in the same place we need to put use LayoutParams.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | < RelativeLayout android:id = "@+id/activity_main_relative_layout" android:layout_width = "match_parent" ; android:layout_height = "match_parent" ; android:paddingBottom = "@dimen/activity_vertical_margin" android:paddingLeft = "@dimen/activity_horizontal_margin" android:paddingRight = "@dimen/activity_horizontal_margin" android:paddingTop = "@dimen/activity_vertical_margin" <ImageView android:id = "@+id/activity_main_red_card" android:layout_width = "match_parent" android:layout_height = "match_parent" android:background = "@android:color/holo_red_dark" android:layout_marginBottom = "@dimen/activity_main_layout_margin_bottom" android:layout_marginLeft = "@dimen/activity_main_layout_margin_left" android:layout_marginRight = "@dimen/activity_main_layout_margin_right" android:layout_marginTop = "@dimen/activity_main_layout_marginB_top" /> </ RelativeLayout > |
If we have a ImageView in our layout and we need to replace this Image for other element.
We can take the position with margin.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public class MainActivity extends AppCompatActivity { RelativeLayout mRelativeLayout; ImageView mRedCard, mNewCard; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRelativeLayout = (RelativeLayout) findViewById(R.id.activity_main_relative_layout); mRedCard = (ImageView) findViewById(R.id.activity_main_red_card); mNewCard = new ImageView( this ); mNewCard.setBackgroundColor(getColor(R.color.colorPrimary)); takePosition(); } public void takePosition() { RelativeLayout.LayoutParams mLayoutParams = (RelativeLayout.LayoutParams) mRedCard.getLayoutParams(); mNewCard.setLayoutParams(mLayoutParams); mRelativeLayout.addView(mNewCard); } } |
Also you can check the example in GitHub