中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

超簡潔代碼實現(xiàn)CircleImageView

2018-07-20    來源:open-open

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用
public class CircleView extends ImageView {
    private Paint mPaint = new Paint();

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


    @Override
    protected void onDraw(Canvas canvas) {
        Drawable mDrawable = getDrawable();//獲取xml文件設置的圖片
        if (null == mDrawable) super.onDraw(canvas);//如果為空,交給父類處理
        Bitmap mBitmap = ((BitmapDrawable) mDrawable).getBitmap();//將圖片轉(zhuǎn)化成bitmap

        int len = getWidth() < getHeight() ? getWidth() : getHeight();//獲取xml的長寬屬性值,選擇較小的

        Bitmap tempBitmap = Bitmap.createBitmap(len, len, Bitmap.Config.ARGB_8888);//新建一個bitmap對象,作為緩存
        Canvas mCanvas = new Canvas(tempBitmap);//新建畫布緩存bitmap對象

        mPaint.setAntiAlias(true);//抗鋸齒
        mCanvas.drawCircle(len / 2, len / 2, len / 2, mPaint);//畫一個圓

        mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));//設置畫筆的覆蓋類型

        Matrix matrix = new Matrix(); // 初始化Matrix對象
        matrix.setScale((float) len / mBitmap.getWidth(), (float) len / mBitmap.getHeight()); //設置縮放比例
        mCanvas.drawBitmap(mBitmap, matrix, mPaint);//畫出縮放后的圖片

        mPaint.reset();//重置畫筆
        canvas.drawBitmap(tempBitmap, 0, 0, mPaint);//繪制緩存圖片
    }

}

標簽:

版權申明:本站文章部分自網(wǎng)絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:遍歷Java Map的四種方法

下一篇: C# FTP上傳下載 代碼