在android上使用圆形图像视图

时间:2017-01-09 14:38:16

标签: java android

我在xml布局上使用圆形图像视图,但是我收到了这个错误:

Exception Details java.lang.NoClassDefFoundError: de/hdodenhof/circleimageview/R$styleable   at 
 de.hdodenhof.circleimageview.CircleImageView.<init>(CircleImageView.java:91)   at 
 de.hdodenhof.circleimageview.CircleImageView.<init>(CircleImageView.java:85)   
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:858)
at  android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)   
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)   
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)

我读了它的官方网站,并喜欢这个网站,但没有为我工作。 这是我的xml配置布局,我喜欢这个网站:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_height="match_parent">

<de.hdodenhof.circleimageview.CircleImageView
    android:layout_width="160dp"
    android:layout_height="160dp"
    android:layout_centerInParent="true"
    android:src="@mipmap/ic_launcher"
    app:civ_border_width="2dp"
    app:civ_border_color="@color/colorAccent" />
 </RelativeLayout>

我的格斗:

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
 //    compile 'com.android.support:appcompat-v7:23.3.0'
  compile 'com.android.support:appcompat-v7:23.0.1'
  compile 'com.android.support:design:23.0.1'
  compile 'de.hdodenhof:circleimageview:2.1.0'
}

它不会使我的带有边框的图片圈

2 个答案:

答案 0 :(得分:2)

我检查这个代码行完全没问题,我从你的代码中得到了以下输出: enter image description here

Option 1: Clean the project or rebuild the project

Option 2: ReSync gradle. enter image description here

Option 3: Update your Android Studio.

如果三个选项中的任何一个不起作用,那么您的样式文件中就会出现错误,请检查并更正它们。

答案 1 :(得分:-1)

您可以制作一个带有白色边框和透明内容的简单圆圈。

// res/drawable/circle.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:innerRadius="0dp"
    android:shape="ring"
    android:thicknessRatio="1.9"
    android:useLevel="false" >
    <solid android:color="@android:color/transparent" />

    <stroke
        android:width="10dp"
        android:color="@android:color/white" />
</shape>

然后创建一个可绘制的图层列表,并将其作为背景添加到您的图像视图中。

// res/drawable/img.xml

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

    <item android:drawable="@drawable/ic_launcher"/>
    <item android:drawable="@drawable/circle"/>

</layer-list>

并将其作为您的imageview的背景。

   <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/img"/>

你会有类似的东西。

enter image description here