Вы должны использовать RelativeLayout для решения этой проблемы.Однажды я сталкивался с подобной проблемой ...
Я не использовал кнопки Android по умолчанию, потому что у меня были свои изображения для поведения при нажатии и без нажатия ...
Предположим, вы хотите разместить восточную «кнопку».Вы можете использовать такую функцию, как:
public void addEastImageView(RelativeLayout myBackgroundLayout, ImageView center, ImageView east, int leftPadding, int topPadding, int rightPadding, int bottomPadding){
RelativeLayout.LayoutParams rightSide = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
rightSide.addRule(RelativeLayout.RIGHT_OF, center.getId());
east.setPadding(leftPadding, topPadding, rightPadding, bottomPadding);
myBackgroundLayout.addView(east, rightSide);
}
ImageView с именем "center" будет той, которую вы назвали "i" на своем изображении.Параметры заполнения позволят вам контролировать расстояние между ImageViews.Вы можете создать такие функции, как эта, чтобы добавить кнопки «запад», «юг» и «север»: вам просто нужно изменить параметр «RelativeLayout.RIGHT_OF» на «RelativeLayout.LEFT_OF», «RelativeLayout.BELLOW» и «RelativeLayout.ABOVE "соответственно.
Если вам нужно какое-то поведение для ваших ImageViews, вам просто нужно установить его в setOnClickListener .Затем вы можете изменить «изображение» вашего ImageView с помощью setBackgroundResource , например, и установить другие логические поведения, которые вы хотите.
Надеюсь, это поможет: D