日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Android開發(fā)萬能圓角ImageView

作者簡(jiǎn)介

鐵西ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

大家好,新的一周又開始了!本篇來自 馬云飛 的投稿,分享了如何實(shí)現(xiàn)圓角圖片,希望能幫助有需要的朋友。

馬云飛 的博客地址:

http://blog.csdn.net/sw950729

正文

最近一兩個(gè)月沒事做,然后就開始封裝一些東西,昨天上司讓我?guī)退龅膱A角圖片。思路自然是和網(wǎng)上的demo不一樣的。

網(wǎng)上demo的效果:

差不多應(yīng)該是這樣的,但是容易出一些問題,比如你的圖片本身就是個(gè)圓角?又或者圖片太大,你想縮小顯示,但出現(xiàn)顯示內(nèi)容不全?

我想實(shí)現(xiàn)的效果是這樣的: 

圖畫的較丑,見諒。

意思就是以他的寬高的最小值,為正方形的寬給他做圓角,當(dāng)然長(zhǎng)方形也可以的,因?yàn)槲以嚵诵Ч?,沒有問題,你們到時(shí)候可以自己嘗試。

參考文章:

http://blog.csdn.net/lmj623565791/article/details/41967509

這是翔神的文章,不過他的效果,并不是我想要的,因?yàn)?,他的繪圖是從(0,0)點(diǎn)然后截取寬高繪圖,并不是我想要的重中間截取,然后繪圖。

大體代碼和他的差不多。不過依舊刪除了一些無用的代碼(哈哈,這個(gè)我抄代碼的特性,沒用放著干嘛,礙眼。)

好了下面上代碼。初始化: 

這邊我用到了dp2px。這個(gè)就是將dp轉(zhuǎn)換成px。網(wǎng)上代碼一堆~: 

既然繼承了ImageView,少不了的自然是onMeasure方法: 

下面就是重點(diǎn)了,對(duì) bitmapshader 不了解的,去看看這個(gè):

http://blog.csdn.net/aigestudio/article/details/41799811

設(shè)置bitmapshader的代碼如下: 

如果有人看了前面我給的參考文章,那么,你可以發(fā)現(xiàn),我把這個(gè)類的代碼進(jìn)行了改動(dòng),差不多就是把圖片的起點(diǎn)坐標(biāo)從(0,0)移動(dòng)到了我想要的起點(diǎn)。

至于為什么,我們打開ImageView的源碼,找到Center_Crop。這快代碼的意思差不多是將圖片居中把。

來,我們上源碼: 

他怎么計(jì)算的scale我們別管它,重點(diǎn)是如何計(jì)算他的dx和dy。

這里我就舉個(gè)例子來計(jì)算。drawable的寬和高是(300,200)。我要繪制的view的寬高是(200,200)。按照 我的思路繪圖是從(50,0)到(250,250),而不是(0,0)到(200,200)。

話不多說。我們看源碼的計(jì)算: 

我們畫圖,來說明這一切,看完圖,你或許就懂了。 

紅色框是我們之后的,那這樣,1這塊區(qū)域可以理解成沒了。銷毀了。但是實(shí)際的效果是這樣: 

圓形好像看似沒什么問題,那你們自己看圓角圖片左邊是不是被拉伸,這個(gè)拉伸距離應(yīng)該剛好是我們之前計(jì)算得到的50dp。因?yàn)樯蠄D的1那塊已經(jīng)不存在了,所以你畫圖的時(shí)候那快距離就是拉伸的距離。現(xiàn)在我們看看-50dp的圖。 

1 的部分被移出去了。但他依然是存在的,所以繪制的圖是不會(huì)出現(xiàn)任何拉伸的。perfect~

屬性配置完了,剩下的就是ondraw方法咯。很簡(jiǎn)單,代碼如下: 

當(dāng)然你也得考慮到 onsizechanged 的時(shí)候,代碼也不多: 

好了。在這邊我補(bǔ)上attrs屬性: 

現(xiàn)在。一個(gè)***的,***的圓角ImageVIew就解決了。不過好像還缺點(diǎn)什么,對(duì)了。自行修改圓角,自行修改類型,加上這個(gè)才算***。

附上代碼: 

現(xiàn)在我們新建個(gè)xml。放2張圖片。一個(gè)圓角,一個(gè)圓形,先看看效果如何: 

多張圖片在外層加一個(gè)scrollview。好了。我們來看一下效果: 

***~~

圓角大小自行修改。類型自行修改。好了。今天主要內(nèi)容就這么多把。整理了2個(gè)多小時(shí)~也是夠夠的。


網(wǎng)頁(yè)標(biāo)題:Android開發(fā)萬能圓角ImageView
瀏覽路徑:http://m.5511xx.com/article/coidsed.html