Android Studio, макет, закругленные углы, разный цвет фона - PullRequest
0 голосов
/ 30 апреля 2019

Я создаю файл XML для использования в качестве пользовательских информационных окон для маркеров на картах Google.

Я изо всех сил пытаюсь достичь круглого угла. Я нашел разные решения. Или используйте CardView, или создайте фон, используя фигуры, и дайте ему круглые углы и используйте его в качестве фона для моего макета и так далее. Но каждое решение, которое я нашел, дает вам только один цвет на фоне.

Мой макет разделен на две части. Верхняя половина, заголовок и нижняя половина для более конкретной информации, и я хочу дать им два разных цвета фона.

Если я использую CardView или фигуру, я не могу дать им другой цвет фона. Если я устанавливаю цвет фона для определенных элементов, цвет фона остается поверх макета с круглым углом, а прямоугольник без круглого угла закрывает круглый угол.

Как мне это сделать? есть идеи?

1 Ответ

0 голосов
/ 30 апреля 2019

Вы можете рассмотреть возможность сделать это программно, если требование очень динамично. Вы можете использовать ImageView, CardView или что угодно, и программно устанавливать форму и цвет фона везде, где это необходимо, как показано ниже.

public static GradientDrawable drawCircle(int backgroundColor, int borderColor) {
    GradientDrawable shape = new GradientDrawable();
    shape.setShape(GradientDrawable.OVAL);
    shape.setCornerRadii(new float[]{0, 0, 0, 0, 0, 0, 0, 0});
    shape.setColor(backgroundColor);
    shape.setStroke(10, borderColor);
    return shape;
}

Теперь установите фон в вашем представлении (то есть ImageView) следующим образом.

imageView.setBackground(drawCircle(getResources().getColor(android.R.color.holo_blue_dark), getResources().getColor(android.R.color.holo_red_dark)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...