Как получить ImageView с закругленными и ограниченными углами при использовании setClipToOutline - PullRequest
0 голосов
/ 26 февраля 2020

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

Я пытался использовать это как фон для рисования для ImageView с красными полями и imageView.setClipToOutline(true).

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@android:color/transparent" />
    <corners
        android:radius="35" />
    <stroke
        android:width="2dp"
        android:color="#E42323" />
    <padding
        android:bottom="2dp"
        android:left="2dp"
        android:right="2dp"
        android:top="2dp" />
</shape>

, когда изображение не используется как Android:src , оно отлично работает .

, но когда я используйте Android:src границы также обрезаны .

примечание: Я знаю, что можно использовать FrameLayout с ImageView в качестве дочернего элемента и установить фон, который можно нарисовать до FrameLayout, но , который просто задает вопросы .

1 Ответ

0 голосов
/ 26 февраля 2020

Хорошо, я не думаю, что это решение, которое вы ожидали, но поскольку не было легкого решения, которое я мог бы найти для этого вопроса, вместо этого я нашел забавный обходной путь, если уровень API> = 23, но так как он работает, я подумал: Я поделюсь этим, если кому-то это поможет.

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

android:foreground="@drawable/background"

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

Несмотря на то, что передний план использует FrameLayout, но поскольку для того же ImageView не было проблем с анимацией, они кажутся чтобы нормально с ним работать.

...