android.support.v4.widget.CircleImageView不工作

android.support.v4.widget.CircleImageView不工作,android,geometry,material-design,Android,Geometry,Material Design,当我尝试使用: android.support.v4.widget.CircleImageView <android.support.v4.widget.CircleImageView android:id="@+id/picture" android:layout_width="100dp" android:layout_height="100dp"

当我尝试使用: android.support.v4.widget.CircleImageView

        <android.support.v4.widget.CircleImageView
                android:id="@+id/picture"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_gravity="center_vertical"
                android:src="@drawable/ic_bg" />

CircleImageView
是支持库的私有类,无法使用。但是,如果不使用
CircleImageView
,您自己就可以轻松创建此效果。你只需要定义一个<代码> <代码>,中间有一个透明的圆圈,与此类似:

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

如果要显示的图像是动态的,则可以通过编程方式创建
LayerList

CircleImageView
v4
中的一个私有类,因此基本上不能使用它。它在内部用于在
SwipeRefreshLayout
中呈现进度循环,但并不意味着要自己膨胀


请参阅以获取参考。

我找到了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" />


图书馆链接:

这对我来说很有用

xml布局:

  <de.hdodenhof.circleimageview.CircleImageView
            android:id="@+id/picid"
            android:layout_width="270dp"
            android:layout_height="270dp"
            android:src="@drawable/avatar_small"
            android:layout_marginTop="25dp"
            />

如果你想用本地风格来做,就使用这个片段

            <android.support.v7.widget.CardView
                android:id="@+id/view2"
                android:layout_width="45dp"
                android:layout_height="45dp"
                android:background="#ffffff"
                android:shape="ring"
                app:cardCornerRadius="23dp">

                <ImageView
                    android:id="@+id/profile_img_post"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:scaleType="centerCrop"
                    android:src="@drawable/test_img"></ImageView>
            </android.support.v7.widget.CardView>

依赖关系:

compile 'de.hdodenhof:circleimageview:2.0.0'
<de.hdodenhof.circleimageview.CircleImageView
               android:id="@+id/iv_circle"
               android:layout_width="96dp"
               android:layout_height="96dp"
               android:layout_alignParentLeft="true"
               android:layout_alignParentTop="true"
               android:src="@drawable/thumb"
               app:border_color="@color/white"
               app:border_width="2dp" />
代码:

compile 'de.hdodenhof:circleimageview:2.0.0'
<de.hdodenhof.circleimageview.CircleImageView
               android:id="@+id/iv_circle"
               android:layout_width="96dp"
               android:layout_height="96dp"
               android:layout_alignParentLeft="true"
               android:layout_alignParentTop="true"
               android:src="@drawable/thumb"
               app:border_color="@color/white"
               app:border_width="2dp" />

简单添加:此处将最新库版本
2.0.0
更改为
2.2.0

dependencies {

 implementation 'de.hdodenhof:circleimageview:2.2.0'

}

只需重建项目

  • 构建==>清除项目
  • 构建==>重建项目
如果不起作用
文件==>Invaildate Cahses/重新启动




这是我的日志我的朋友有没有使用这个新widgetIt的例子在SwipeRefreshLayout内部使用。如果你只需要一个带有圆形轮廓的图像视图,这里有很多问题。@MaherisMail你不能像这样编辑别人的答案。我现在已经回滚了编辑。在这个链接中,我没有看到要下载的库,只有源代码。您能否提供更多有关如何将此自定义视图添加到应用程序的详细信息?@Zvi您必须使用gradle。这里提到了@Abhishek,我知道这一点,并且我已经在我的gradle“compile”中添加了de.hdodenhof:circleimageview:2.0.0”。但circleimageview需要一个文件(可能是jar或Librarray)。不是吗?@Zvi just do project build gradle会自动将所需文件添加到您的项目中。通过
app:civ\u border\u width=“2dp”app:civ\u border\u color=“@color/white”
替换为
app:civ\u border\u color=“@color/white”
要使用第三方库示例…问题是关于
android.support.v4.widget.CircleImageView
您的答案很好。但是android:shape=“ring”在这里什么都不做。只要把app:cardCornerRadius=“1000dp”(放高一点)放进去就行了。你应该得到更高的投票权。哦,我从来没有意识到这个财产!很酷的东西!这是可行的,但有一点需要说明。添加此选项以在
RecyclerView
项目上显示多个圆圈可能会影响性能。所以要小心。但无论如何,这是一个很好的解决方案。我尝试了最新版本的
circleimageview
仍然不起作用。您可以试试:
dependencies {

 implementation 'de.hdodenhof:circleimageview:2.2.0'

}