2017-05-25 160 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); 
     } 
    });