成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android開發萬能圓角ImageView

移動開發 Android
大家好,新的一周又開始了!本篇來自 馬云飛 的投稿,分享了如何實現圓角圖片,希望能幫助有需要的朋友。

作者簡介

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

馬云飛 的博客地址:

http://blog.csdn.net/sw950729

正文

最近一兩個月沒事做,然后就開始封裝一些東西,昨天上司讓我幫他做的圓角圖片。思路自然是和網上的demo不一樣的。

網上demo的效果:

 

 

 

 

差不多應該是這樣的,但是容易出一些問題,比如你的圖片本身就是個圓角?又或者圖片太大,你想縮小顯示,但出現顯示內容不全?

我想實現的效果是這樣的: 

 

 

 

圖畫的較丑,見諒。

意思就是以他的寬高的最小值,為正方形的寬給他做圓角,當然長方形也可以的,因為我試了效果,沒有問題,你們到時候可以自己嘗試。

參考文章:

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

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

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

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

 

 

 

這邊我用到了dp2px。這個就是將dp轉換成px。網上代碼一堆~: 

 

 

 

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

 

 

 

下面就是重點了,對 bitmapshader 不了解的,去看看這個:

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

設置bitmapshader的代碼如下: 

 

 

 

如果有人看了前面我給的參考文章,那么,你可以發現,我把這個類的代碼進行了改動,差不多就是把圖片的起點坐標從(0,0)移動到了我想要的起點。

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

來,我們上源碼: 

 

 

 

他怎么計算的scale我們別管它,重點是如何計算他的dx和dy。

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

話不多說。我們看源碼的計算: 

 

 

 

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

 

 

 

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

 

 

 

圓形好像看似沒什么問題,那你們自己看圓角圖片左邊是不是被拉伸,這個拉伸距離應該剛好是我們之前計算得到的50dp。因為上圖的1那塊已經不存在了,所以你畫圖的時候那快距離就是拉伸的距離。現在我們看看-50dp的圖。 

 

 

 

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

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

 

 

 

當然你也得考慮到 onsizechanged 的時候,代碼也不多: 

 

 

 

好了。在這邊我補上attrs屬性: 

 

 

 

現在。一個***的,***的圓角ImageVIew就解決了。不過好像還缺點什么,對了。自行修改圓角,自行修改類型,加上這個才算***。

附上代碼: 

 

 

 

現在我們新建個xml。放2張圖片。一個圓角,一個圓形,先看看效果如何: 

 

 

 

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

 

 

 

***~~

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

責任編輯:龐桂玉 來源: 郭霖
相關推薦

2011-06-16 15:57:25

Android

2023-08-07 14:09:58

數據庫開發

2022-06-23 18:10:15

多云

2009-02-27 13:48:00

Mdaemon郵件服務器

2020-06-16 08:32:00

人工智能技術機器學習

2022-11-21 09:57:18

網關系統

2009-12-03 18:13:36

PHP萬能密碼

2021-08-17 14:25:11

人臉識別人工智能身份識別

2022-06-27 08:36:08

PythonLambda

2021-11-11 10:41:25

代碼開發工具

2022-11-30 13:13:41

節能減碳PUE

2014-02-17 10:56:21

Hadoop

2023-04-06 13:47:47

2023-03-22 09:00:38

2017-04-18 10:36:19

權限框架組件Django

2023-06-14 15:10:36

鴻蒙游戲開發

2024-12-09 09:25:30

2013-06-09 09:51:27

亞馬遜Web服務災難恢復AWS災難恢復

2015-01-20 15:49:47

2023-05-31 15:42:06

游戲開發關系型數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久久久久 | 99亚洲精品 | 最新中文字幕 | 久久久九九 | 久久国产精品精品国产色婷婷 | 亚洲热在线视频 | 国产精品久久久久久久久久99 | 亚洲成人一区二区 | 日本三级做a全过程在线观看 | 视频1区 | 亚洲欧美国产毛片在线 | 国产999精品久久久久久绿帽 | 久久久久久高潮国产精品视 | 波多野结衣中文字幕一区二区三区 | 国产精品视频一区二区三区 | 视频一区在线观看 | av大片 | 91精品国产91久久综合桃花 | 91在线视频一区 | 亚洲精品久久久久中文字幕欢迎你 | 丝袜天堂 | 九九热在线免费观看 | 日韩欧美一级精品久久 | 国产激情偷乱视频一区二区三区 | 欧美激情一区二区三级高清视频 | 亚洲在线免费观看 | 日韩一三区| 波多野结衣av中文字幕 | 久久三区 | 亚洲一二三区在线观看 | 喷水毛片 | 中国一级特黄真人毛片免费观看 | 精品自拍视频在线观看 | 精品欧美一区二区精品久久久 | 九色在线观看 | 国产成在线观看免费视频 | 国产在线拍偷自揄拍视频 | 青青草社区| 在线一级片| 国产精品免费视频一区 | 精品国产18久久久久久二百 |