功能描述:
頭像上傳在APP中是很常見的功能坷衍,但是關(guān)于頭像上傳前的圖片裁剪方式,如果使用系統(tǒng)提供的裁剪方式達(dá)不到預(yù)期效果匙奴,所以在這里提供一個(gè)類似qq俗冻、微信頭像裁剪的示例程序礁叔。示例程序主要提供調(diào)用系統(tǒng)相冊(cè)、調(diào)用系統(tǒng)相機(jī)后進(jìn)行圖片裁剪迄薄,可以設(shè)置類似qq的圓形裁剪框琅关,類似微信的矩形裁剪框。裁剪控件提供移動(dòng)讥蔽、縮放涣易、邊界檢測(cè)、大圖壓縮處理功能冶伞。
代碼說明:
ClipView為一個(gè)繼承自View的自定義控件新症,通過Canvas畫出裁剪框,中間透過添加Layer層响禽,鏤空裁剪框徒爹,裁剪框?yàn)橥该鲄^(qū)域,裁剪框四周為半透明效果芋类。ClipViewLayout為一個(gè)繼承自RelativeLayout的自定義容器隆嗅,主要組合裁剪框組件和原圖ImageView,并提供了自定義屬性侯繁,在xml文件中只需要添加ClipViewLayout即可胖喳。
- clipBorderWidth:裁剪框邊框?qū)挾?/li>
- mHorizontalPadding: 裁剪框水平方向的間距
- clipType: 裁剪框類型,取值(circle, rectangle)