Как сделать закругленные углы для изображения в представлении изображения, используя макет XML в Android

Я пытался много раз, но я знаю, что я что-то упустил, не могли бы вы, ребята, пожалуйста, объясните это. Вот что я пытался

    <ImageView
        android:id="@+id/Dicimage"
        android:layout_width="130px"
        android:layout_height="100px"
        android:src="@drawable/slang"
        android:background="@drawable/corner"
        android:padding="1dp"/>

Создан Уголок XML в папке ресурсов

  <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"         
    android:shape="rectangle"> 
<solid android:color="#fff"/>    

<stroke android:width="0dp"
        android:color="#ff000000"/>

<padding android:left="2dp"
         android:top="2dp"
         android:right="2dp"
         android:bottom="2dp"/> 

<corners android:radius="30px"/> 
   </shape>

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

4 ответа

Нет, это невозможно. Вы должны сделать это программно.

То, что вы делаете, это создаете фон с закругленными углами и рисуете над ним рисунок.

Вот отличная статья о том, как создать изображение закругленных углов из Romain Guy: http://www.curious-creature.org/2012/12/11/android-recipe-1-image-with-rounded-corners/

Вы можете добавить свой ImageView в CardView с атрибутом cardElevation=0

<android.support.v7.widget.CardView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/thumbnail_card"
                card_view:cardCornerRadius="15dp"
                card_view:cardElevation="0dp"
                android:layout_margin="10dp">


            <ImageView
                android:id="@+id/thumbnail"
                android:layout_width="110dp"
                android:layout_height="75dp"
                android:scaleType="centerCrop" />

            </android.support.v7.widget.CardView>

Используйте этот XML-файл в качестве переднего плана

Я имею в виду, вместо

android:background="@drawable/corner"

Использовать этот

android:foreground="@drawable/corner"

Вы должны добавить этот код как some_foreground.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:width="8dp"
                    android:color="@color/white" />
            </shape>
        </item>
        <item>
            <shape android:shape="rectangle">
                <corners android:radius="@dimen/padding_margin_8" />
                <stroke
                    android:width="8dp"
                    android:color="@color/white" />
            </shape>
        </item>
    </layer-list>

И тогда вы можете использовать это в качестве переднего плана для вашего ImageView. Вы должны добавить это как:

<ImageView
        android:id="@+id/event_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:foreground="@drawable/some_foreground"
        android:scaleType="centerCrop"
        android:src="@drawable/your_image" />

Попробуй это:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
    <solid android:color="#ffffff"/>    

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

    <padding android:left="1dp"
             android:top="1dp"
             android:right="1dp"
             android:bottom="1dp"/> 

    <corners android:radius="30px"/> 
</shape>

Взято из этого поста: Android ImageView с закругленными углами не работает

Вот супер поздний ответ, но если вы пытаетесь создать круговой ImageView:

Создайте отрисовку в папке для рисования под названием круг:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid
        android:color="@android:color/black"/>
    <size
        android:height="60dp"
        android:width="60dp"/>
</shape>

ImageView:

<ImageView
    android:id="@+id/Dicimage"
    android:layout_width="130px"
    android:layout_height="100px"
    android:src="@drawable/slang"
    android:background="@drawable/circle"
    android:padding="1dp"/>
Другие вопросы по тегам