Android фон изображения с закругленными углами - PullRequest
2 голосов
/ 26 января 2020

Я пытаюсь сделать свое изображение с закругленными углами. Я делаю вот так

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/bg" />
    <item>

        <shape android:shape="rectangle" android:padding="10dp">
            <solid android:color="#00000000" />
            <corners
                android:bottomRightRadius="15dp"
                android:bottomLeftRadius="15dp"
                android:topLeftRadius="15dp"
                android:topRightRadius="15dp"/>
            <stroke android:width="3dp" android:color="#a9a9a9"/>
        </shape>
    </item>

</layer-list>

и результат такой:

enter image description here

Вы можете видеть там серый цвет за круглым углом, Как я могу это удалить? Я думаю, что что-то упустил. Дайте мне знать, если кто-то может помочь мне решить мою проблему. Спасибо

Ответы [ 3 ]

1 голос
/ 26 января 2020

Вы можете использовать cardView, чтобы скруглить угол, попробуйте это

   <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:cardCornerRadius="8dp"
        android:layout_margin="5dp"
        android:elevation="10dp">

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:src="@drawable/bg"
            android:scaleType="centerCrop"
            />
    </android.support.v7.widget.CardView>

В вашем коде удалите

         <stroke android:width="3dp" android:color="#a9a9a9"/>

, затем вы можете удалить границу серого цвета

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

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

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
        <shape android:shape="rectangle">
            <stroke
                android:color="#555555"
                android:width="5dp"/>
        </shape>

</item>
<item android:top="-1dp" android:bottom="-1dp"  android:right="-1dp" android:left="-1dp">
        <shape android:shape="rectangle">
            <stroke
                android:color="#555555"
                android:width="6dp"/>
            <corners android:radius="16dp"/>
        </shape>
</item>

Теперь, если ваша минимальная версия SDK равна 23, вы можете просто установить рисование в качестве переднего плана.

android:foreground="@drawable/mask"

Но если вы ориентируетесь ниже 23, вы можете попробовать код ниже.

<FrameLayout
    android:layout_margin="16dp"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
        android:id="@+id/thumbImage"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY"
        android:src="@drawable/top_tracks_song" />

    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/test">
    </FrameLayout>

</FrameLayout>
0 голосов
/ 26 января 2020

попробуйте

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    >
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#398B27"/>
            <corners android:radius="15dp" />
        </shape>

    </item>

    <item
        android:left="1dp"
        android:right="1dp"
        android:top="1dp"
        android:bottom="1dp">
        <shape android:shape="rectangle">
            <solid android:color="@android:color/white"/>
            <corners android:radius="15dp" />
        </shape>

    </item>

</layer-list>

Настройте

android:left="1dp"
        android:right="1dp"
        android:top="1dp"
        android:bottom="1dp"

чтобы получить желаемую ширину


<ImageView
android:id="@+id/make_msg_attach"
android:layout_width="match_parent"
android:layout_height="200dp"
android:src="@drawable/my_image"
android:layout_margin="5dp"
android:background="@drawable/this_xml_file.xml"
android:padding="2dp"
/>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...