У меня есть пользовательский вид, и я хочу добавить этот вид в другое место экрана. Я создал метод, который может создать базу Rect для некоторых входных параметров, и я хочу показать этот объект на экране. Я использовал FrameLayout и RelativeLayout для этой цели, но FrameLayout поместил его в угол, а RelativeLayout не показывает его. Как я могу это исправить? Заранее спасибо.
Java-код:
RelativeLayout deviceContent = findViewById(R.id.deviceContent);
.
.
.
private void addView(){
ViewDevice obj = new ViewDevice(this);
int degrees = new Random().nextInt(360);
final Rect rect = computeChildFrame(w/2, h/2, 50, degrees, (int) Utilities.dpToPx(48));
obj.layout(rect.left, rect.top, rect.right, rect.bottom);
deviceContent.addView(obj);
}
private static Rect computeChildFrame(final int centerX, final int centerY,
final int radius, final float degrees, final int size) {
final double childCenterX = centerX + radius
* Math.cos(Math.toRadians(degrees));
final double childCenterY = centerY + radius
* Math.sin(Math.toRadians(degrees));
return new Rect((int) (childCenterX - size / 2),
(int) (childCenterY - size / 2),
(int) (childCenterX + size / 2),
(int) (childCenterY + size / 2));
}