Ответ 1
Вы можете сделать это, используя LayoutParams
.
Они могут быть добавлены к компонентам интерфейса android, чтобы установить их границы и положение.
Пример (установка LayoutParams в дочернем представлении RelativeLayout)
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); //The WRAP_CONTENT parameters can be replaced by an absolute width and height or the FILL_PARENT option)
params.leftMargin = 50; //Your X coordinate
params.topMargin = 60; //Your Y coordinate
childView.setLayoutParams(params);
Обратите внимание, что тип LayoutParams должен быть равен родительскому элементу childview, к которому вы хотите добавить. (LinearLayout.LayoutParams
для a LinearLayout
, RelativeLayout.LayoutParams
для a RelativeLayout
и т.д.).
Кроме того, вместо childView.setLayoutParams(params);
вы также можете использовать parentView.addView(childView,params);
для установки Layoutparams, когда элемент добавляется в родительский контейнер.
ПРИМЕЧАНИЕ! Значения для координат находятся в пикселях. Поскольку лучше использовать значения DP для определения размеров вашего интерфейса, вы можете использовать этот кусок кода для преобразования dp в пиксели:
private int getPixels(int dipValue){
Resources r = getResources();
int px = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, r.getDisplayMetrics());
return px;
}