android.support.v4.widget.CircleImageView does not work

CircleImageView is a private class from v4, so basically you can't use it. It is used internally for rendering the progress circle in a SwipeRefreshLayout, but is not meant to be inflated by yourself.

See here for reference.


The CircleImageView is a private class of the support library and cannot be used. But it is easy to create this effect yourself without the CircleImageView. You just need to define a <shape /> drawable with a transparent circle in the middle similar to this:

<shape
    android:innerRadius="0dp"
    android:shape="ring"
    android:thicknessRatio="1"
    android:useLevel="false" >

    <solid android:color="@android:color/transparent" />

    <stroke
        android:width="100dp"
        android:color="#FFFFFFFF" />
</shape>

After that just combine the image you want to display in the ImageView with the <shape /> drawable from above in a LayerList like this:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/your_image" />
    <item android:drawable="@drawable/circle" />
</layer-list>

If the image you want to display is dynamic then you can create the LayerList programmatically!


I found a replacement for android.support.v4.widget.CircleImageView.

<de.hdodenhof.circleimageview.CircleImageView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/meal_image_order"
android:layout_width="96dp"
android:layout_height="96dp"
android:src="@drawable/menu1"
app:civ_border_width="2dp"
app:civ_border_color="@color/white"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true" />

Library link: https://github.com/hdodenhof/CircleImageView