Источник ImageView всегда переопределяет свой фон Android

Я хочу округлить одну сторону до ImageView

нравится

Итак, я добавил это в качестве фона в ImageView.

one_ounded_side.xml

<vector xmlns:android = "http://schemas.android.com/apk/res/android"
android:width = "24dp"
android:height = "24dp"
android:viewportWidth = "200.0"
android:viewportHeight = "100.0">
<path
    android:fillColor = "#000"
    android:pathData = "M200,0H0v4.5h0v75.8h0c17.8,10.2 56,17.2 100.5,17.2c44.5,0 81.6,-7 99.5,-17.2h0V4.5h0V0z" />

И установка изображений в ImageView во время выполнения, но изображение, которое я установил, всегда переопределяет этот фоновый рисунок. Таким образом, он выглядит как обычный прямоугольник.

Я добавил ImageView вот так

<ImageView
    android:layout_width = "match_parent"
    android:layout_height = "250dp"
    android:background = "@drawable/one_rounded_side"
    android:scaleType = "centerCrop"/>

Я попытался установить фон программно после добавления изображения во время выполнения, но это не сработало.

Может ли кто-нибудь помочь мне найти решение?

Чтобы показать закругленное изображение, вам необходимо создать закругленный Bitmap. Как вы устанавливаете изображение? Если вы используете Glide или Picasso, вы можете использовать Transformation при загрузке.

ADM 02.01.2019 13:28

Imageview не имеет идентификатора?

notTdar 02.01.2019 13:38

@Tarul используйте image.setClipToOutline (true) в своей деятельности

Aman Rawat 02.01.2019 14:22

@AmanRawat Это не сработало

Tarul 03.01.2019 06:28

@ADM Я просто хочу, чтобы нижняя сторона была закруглена с прямоугольным основанием. Подскажите, пожалуйста, как это сделать?

Tarul 03.01.2019 06:30

@ADM попробуйте android: foreground = "@ drawable / one round side" вместо фона, иначе вам придется создать свой customImageView. Сообщите мне, если это сработает.

Aman Rawat 03.01.2019 06:41

Параметр @AmanRawat, отображаемый на переднем плане, показывает округлый вырез на изображении, но изображение все еще отображается в прямоугольнике

Tarul 03.01.2019 06:59

@Tarul Возможно, ваше изображение прямоугольное. попробуйте масштабировать изображение. Используйте android: scaleType = "centerCrop" или android: scaleType = "fitXY".

Aman Rawat 03.01.2019 07:12

@AmanRawat, я не отвечаю на этот вопрос. Если у вас есть решение, опубликуйте его как ответ с выводом.

ADM 03.01.2019 07:20
1
9
76
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Есть решение. Это сработало идеально для меня.

Включите приведенный ниже код в свой уровень проекта build.gradle

allprojects {
repositories {
    ...
    maven { url "https://jitpack.io" }
}

}

Включите приведенный ниже код в build.gradle на уровне приложения.

implementation 'com.github.developer-shivam:Crescento:1.2.1'

Включите это в свой XML-файл

<developer.shivam.crescento.CrescentoContainer
    android:id = "@+id/crescentoContainer"
    android:layout_width = "match_parent"
    android:layout_height = "250dp"
    android:elevation = "1dp"
    android:scaleType = "centerCrop"
    attribute:curvature = "50dp">

    <ImageView
        android:id = "@+id/iv_news_details"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:scaleType = "centerCrop"/>
</developer.shivam.crescento.CrescentoContainer>

И установите изображение в ImageView во время выполнения.

Ссылка: https://github.com/developer-shivam/Crescento

Другие вопросы по теме