影像角半径

时间:2019-05-29 05:50:14

标签: android xml

有什么办法可以使ImageViewxml layout的角落吗?即使没有,我们可以通过什么方式实现这一目标?

PS:image urls正在从API中获取。不是来自drawable文件夹

3 个答案:

答案 0 :(得分:1)

使用 Glide

使用

Glide
  .with(context)
  .load(url)
  .apply(
      RequestOptions()
        .circleCrop())
  .into(imageView)

答案 1 :(得分:0)

您可以使用这样的自定义视图来实现它

public class RoundImageView extends ImageView {

    private float mRadius = 18.0f;
    private Path mPath;
    private RectF mRect;

    public RoundImageView(Context context) {
        super(context);
        init();
    }

    public RoundImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public RoundImageView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    private void init() {
        mPath = new Path();

    }

    @Override
    protected void onDraw(Canvas canvas) {
        mRect = new RectF(0, 0, this.getWidth(), this.getHeight());

        mPath.addRoundRect(mRect, mRadius, mRadius, Path.Direction.CW);

        canvas.clipPath(mPath);

        super.onDraw(canvas);
    }
}

并在您的XML中使用

<your_pkag.RoundImageView
     android:id="@+id/imgView"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:src="@drawable/image" />

答案 2 :(得分:0)

我不知道你想做什么。但是为了边界。

您可以创建如下所示的可绘制文件。

line.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="5dp" />
    <stroke android:width="2dp" android:color="#000" />
</shape>

activity_xxx.xml

    <ImageView
        android:layout_height:"200dp"
        android:layout_width:"200dp"
        android:background:"@drawable/line.xml"
    />