RoundedImageView.java 文件源码

java
阅读 34 收藏 0 点赞 0 评论 0

项目:Pocket-Plays-for-Twitch 作者:
@Override
protected void onDraw(Canvas canvas) {

    Drawable drawable = getDrawable();

    if (drawable == null) {
        return;
    }

    if (getWidth() == 0 || getHeight() == 0) {
        return;
    }

    Bitmap b = null;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
            && drawable instanceof VectorDrawable) {
        ((VectorDrawable) drawable).draw(canvas);
        b = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(), Bitmap.Config.ARGB_8888);
        Canvas c = new Canvas();
        c.setBitmap(b);
        drawable.draw(c);
    } else if (drawable instanceof BitmapDrawable){
        b = ((BitmapDrawable) drawable).getBitmap();
    } else if (drawable instanceof LayerDrawable) {
        LayerDrawable layerDrawable = (LayerDrawable) drawable;
        b = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(), Bitmap.Config.ARGB_8888);
        layerDrawable.draw(new Canvas(b));
    }
    Bitmap bitmap = b.copy(Bitmap.Config.ARGB_8888, true);
    int w = getWidth(), h = getHeight();

    Bitmap roundBitmap =  getCroppedBitmap(bitmap, w);
    canvas.drawBitmap(roundBitmap, 0,0, null);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号