我正在尝试制作一个圆形的图像视图,但我得到了一个不正确的输出。我附上照片
这些是用于此
的xml文件circle.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 :(得分:6)
您可以使用CirlcleImageView
库来舍入ImageView
:
编译此图片
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
答案 1 :(得分:0)
您可以使用外部库,如
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>
答案 2 :(得分:-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);
}
});