从网上找到了一个能将图片变成圆形的类,故写下来以备不时之需,下面来介绍使用方法:
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
tools:context="com.example.android0804.MainActivity" >
<!-- 设置默认图片资源 android:src="@drawable/a" -->
<com.example.android0804.CircleImageView
android:id="@+id/civ"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/a" />
</RelativeLayout>
CircleImageView.java
package com.example.android0804;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Paint.Align;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Shader;
import android.graphics.SweepGradient;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.text.TextPaint;
import android.util.AttributeSet;
import android.util.FloatMath;
import android.widget.ImageView;
public class CircleImageView extends ImageView {
private static final ScaleType SCALE_TYPE = ScaleType.CENTER_CROP;
private static final Bitmap.Config BITMAP_CONFIG = Bitmap.Config.ARGB_8888;
private static final int COLORDRAWABLE_DIMENSION = 2;
// 圆形边框的厚度默认值。
// 如果是0,则没有天蓝色渐变的边框。
private static final int DEFAULT_BORDER_WIDTH = 1;
private static final int DEFAULT_BORDER_COLOR = Color.BLAC