Как сделать закругленные углы для изображения в представлении изображения с помощью макета XML в Android - PullRequest
1 голос
/ 23 марта 2012

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

    <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>

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

Ответы [ 6 ]

3 голосов
/ 15 июля 2014

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

Вы создаете фон с закругленными углами и рисуете над ним рисунок.

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

1 голос
/ 23 марта 2012

ПОПРОБУЙТЕ:

<?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 с закругленными углами не работает

0 голосов
/ 15 февраля 2019

вы можете добавить свой 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>
0 голосов
/ 05 февраля 2019

Вы должны добавить этот код как 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" />
0 голосов
/ 13 сентября 2018

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

Создайте рисованный объект в папке для рисования с именем circle:

<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"/>
0 голосов
/ 26 апреля 2018

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

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

android:background="@drawable/corner"

Используйте это

android:foreground="@drawable/corner"
...