自定义CicrleDrawable

来源:互联网 发布:php登录页面代码 编辑:程序博客网 时间:2024/05/20 20:19
public class CicrleDrawable extends Drawable {    private Paint mPaint;    private int mWidth;    private Bitmap mBitmap;    public CicrleDrawable(Bitmap bitmap) {        this.mBitmap = bitmap;        BitmapShader bitmapShader = new BitmapShader(mBitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);        mPaint = new Paint();        mPaint.setAntiAlias(true);        mPaint.setShader(bitmapShader);        mWidth = Math.min(mBitmap.getHeight(), mBitmap.getWidth());    }    @Override    public void draw(Canvas canvas) {        canvas.drawCircle(mWidth / 2, mWidth / 2, mWidth / 2, mPaint);    }    @Override    public void setAlpha(int alpha) {        mPaint.setAlpha(alpha);    }    @Override    public void setColorFilter(ColorFilter colorFilter) {        mPaint.setColorFilter(colorFilter);    }    @Override    public int getOpacity() {        return PixelFormat.TRANSLUCENT;    }    @Override    public int getIntrinsicHeight() {        return mWidth;    }    @Override    public int getIntrinsicWidth() {        return mWidth;    }}

在MainActivity中

 image = (ImageView) findViewById(R.id.image_view);        Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.bar01);        image.setImageDrawable(new CicrleDrawable(bitmap));
0 0
原创粉丝点击