圓形頭像設計

2021-09-19 09:28:35 字數 1694 閱讀 3016

圓形頭像嘛說到底就是張,所以自定義圓形控制項自然要繼承android原生的imgaeview,實現其中的setimagebitmapsetimagedrawablesetimageurisetimageresource的方法。當然主要的ondraw方法也不能缺少,在其中要實現圓形頭像的繪製。這裡還要借助兩個主要的類matrixbitmapshader,通過這兩個類實現的縮放效果。

bitmapshader有三個引數

tilextiley都是shader.tilemode型別,有三個選擇值

過大與過小都不好,不可能絕對的適中,所以縮放值的獲取是最重要的。我們要比較寬高與控制項寬高,通過錯位相乘來比較的寬高哪個與控制項的寬高相差更大。取相差大的值進行比較得到縮放值。下面是主要實現**:

mdrawablerec.set(0, 0, getwidth(), getheight());

if (mbitmapwidth * mdrawablerec.height() > mdrawablerec.width() * mbitmapheight) else

mbitmapshader = new bitmapshader(mbitmap, shader.tilemode.clamp, shader.tilemode.clamp);

mpaint.setshader(mbitmapshader);

mmatrix.setscale(scal, scal);

mbitmapshader.setlocalmatrix(mmatrix);

@override

protected void ondraw(canvas canvas)

//填充

canvas.drawcircle(getwidth() / 2.0f, getheight() / 2.0f, mradius, mfillpaint);

canvas.drawcircle(getwidth() / 2.0f, getheight() / 2.0f, mradius, mpaint);

//描邊

if (mstrokewidth != 0)

canvas.drawcircle(getwidth() / 2.0f, getheight() / 2.0f, mradius, mborderpaint);

}

這裡的順序不要打亂,否則回影響原有的顏色效果
好了主要的實現方法就是這些了,其實只要理解上面的就基本上掌握了圓形頭像的設定了。

使用的話直接在xml檔案中使用自己自定義的circleimageview控制項,

更多原始碼:

個人部落格:

ios 裁剪圓形頭像 iOS中裁剪圓形頭像

void clipimage 0.載入 uiimage image uiimage imagenamed 阿狸頭像 1.開啟位圖上下文,跟尺寸一樣大 uigraphicsbeginimagecontextwithoptions image.size,no,0 2.設定圓形裁剪區域,正切與 2.1建立...

iOS 圓形頭像如何實現

思路 view有乙個屬性layer,通過設定cornerradius來設定圓角的半徑,view是正方形的才能保證通過調整圓角半徑來形成圓形頭像 view layer setcornerradius cgrectgetheight view bounds 2 view.layer.maskstobou...

IOS圓形頭像的設定

在開發中我們經常會用到頭像,但是系統的uiimageview預設是矩形,然而實際開發中一般都是需要將頭像設定為圓形,今天我和大家聊兩種比較常見的設定圓形頭像的方法。第一種 設定uiimageview的稜角。很簡單 頭像的寬高必須是一致的 cgfloat height 40.0 uiimageview...