2017-05-25 163 views
3

我想做一个圆形的图像视图,但我得到一个不正确的输出。我附上照片圆形的ImageView没有正确显示

Output for Rounded Image View

这些是用于该

circle.xml的XML文件

<?xml version="1.0" encoding="utf-8"?> 
<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> 

img.xml

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

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

</layer-list> 

的图像视图这是:

<ImageView 
    android:id="@+id/iv_dp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignStart="@+id/iv_person" 
    android:layout_below="@+id/iv_person" 
    android:layout_marginTop="37dp" 
    android:adjustViewBounds="true" 
    android:background="@drawable/img" 
    android:cropToPadding="true" /> 
+0

机器人:宽= “10dp” 到Android:宽= “1DP”,看到了变化 – Nabin

+0

HTTPS ://stackoverflow.com/questions/22105775/imageview-in-circular-through-xml/41397749#41397749 –

回答

6

您可以使用CirlcleImageView库进行舍入ImageView: 试试这个。

编译这个libray

compile 'de.hdodenhof:circleimageview:2.2.0' 

使用

<de.hdodenhof.circleimageview.CircleImageView 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/profile_image" 
    android:layout_width="96dp" 
    android:layout_height="96dp" 
    android:src="@drawable/profile" 
    app:civ_border_width="2dp" 
    app:civ_border_color="#FF000000"/> 

了解更多信息follow this link

0

您可以使用外部的lib像

dependencies { 
    ... 
    compile 'de.hdodenhof:circleimageview:2.1.0' 
} 

<de.hdodenhof.circleimageview.CircleImageView 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/profile_image" 
    android:layout_width="96dp" 
    android:layout_height="96dp" 
    android:src="@drawable/profile" 
    app:civ_border_width="2dp" 
    app:civ_border_color="#FF000000"/> 

或者使用自定义的

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

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

试试这个

you can use 'Glide' 

    compile 'com.github.bumptech.glide:glide:3.7.0' 

    basically it is a network library but you can also use this for circular imageView and gif it have a very good memory management 


    ImageView img=(ImageView)findViewById(R.id.img_test); 

    Glide.with(this).load("your image path").asBitmap().placeholder(R.drawable.logo_bk).centerCrop().into(new BitmapImageViewTarget(img) { 
     @Override 
     protected void setResource(Bitmap resource) { 
      RoundedBitmapDrawable circularBitmapDrawable = 
        RoundedBitmapDrawableFactory.create(this.getResources(), resource); 
      circularBitmapDrawable.setCircular(true); 
      img.setImageDrawable(circularBitmapDrawable); 
     } 
    });