Самый простой способ - обернуть фрагмент карты внутри FrameLayout вместе с ImageView. Изображение будет отображать закругленный прямоугольник поверх фрагмента карты. В его простейшей форме вы увидите фрагмент карты внутри закругленного прямоугольника с его углами, торчащими из закругленного прямоугольника, потому что сам вид карты не закруглен. Чтобы преодолеть эту визуальную странность, просто примените значение layout_margin на фрагменте карты. Значение должно быть равно ширине границы прямоугольника.
Выравниваемый прямоугольник определяется как форма xml, как показано ниже
Обратите внимание, что ширина штриха прямоугольника равна 3dp, что является точно таким же значением, которое мы применяли к Свойство layout_margin фрагмента карты. В результате получается красиво округленный фрагмент карты, как показано на скриншоте ниже
Вы должны использовать concat()
вместо merge()
.
Вы можете следовать этой схеме:
// Our sources (left as an exercise for the reader)
Observable<Data> memory = ...;
Observable<Data> disk = ...;
Observable<Data> network = ...;
// Retrieve the first source with data
Observable<Data> source = Observable
.concat(memory, disk, network)
.first();
Подробнее здесь