我修改了在此处找到的CircularImageView,以实现所需的功能。
为了在边框周围创建阴影,我只使用了以下两行:
this.setLayerType(LAYER_TYPE_SOFTWARE, paintBorder);paintBorder.setShadowLayer(4.0f, 0.0f, 2.0f, Color.BLACK);
setLayerType由于HoneyComb以及更高版本上的硬件加速,你需要这样做。我尝试时没有它就无法工作。
这是完整的代码:
import android.annotation.SuppressLint;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapShader;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Shader;import android.graphics.drawable.BitmapDrawable;import android.util.AttributeSet;import android.widget.ImageView;public class CircularImageView extends ImageView{ private int borderWidth = 4; private int viewWidth; private int viewHeight; private Bitmap image; private Paint paint; private Paint paintBorder; private BitmapShader shader; public CircularImageView(Context context) { super(context); setup(); } public CircularImageView(Context context, AttributeSet attrs) { super(context, attrs); setup(); } public CircularImageView(Context context, AttributeSet attrs, int defStyle) { super(contex


