透明的各種形狀的view,以及各種形狀的imageview

根據(jù)前面寫的幾片透明形狀的view的總結(jié)兆解,實(shí)現(xiàn)了遮罩層各種形狀的透明的view,以及各種形狀的imageview

先上圖:

不帶邊框.jpg

帶邊框的.png
1.png

如上圖所示:途中左右兩列為不同的兩個(gè)控件亲雪,左側(cè)的是ShapeShadeImageView勇凭,右側(cè)的是ShapeImageView

view 優(yōu)勢(shì) 劣勢(shì)
ShapeShadeImageView 能在xml中直接能顯示成需要顯示的形狀 其實(shí)大小并沒有變化义辕,是上面遮蓋了一層虾标,如果底部的背景色是漸變的話,能看出周邊的輪廓
ShapeImageView 能直接裁剪成想要的圖形大小灌砖,沒有多余的部分 不能在xml中直接能顯示成需要顯示的形狀

如下圖所示:

4.png

當(dāng)然璧函,如果背景色統(tǒng)一的話,是可以設(shè)置成一致的周崭,漸變的背景的話就能看出來了柳譬。

屬性說明

<declare-styleable name="ShapeImageView">
        <attr name="borderWidth" format="dimension"/>//邊框線的寬度
        <attr name="borderColor" format="color"/>//邊框線的顏色
        <attr name="borderLine" format="enum">//邊框線的屬性,是虛線還是實(shí)線续镇,默認(rèn)實(shí)線
            <enum name="full" value="0"/>//實(shí)線
            <enum name="dotted" value="1"/>//虛線
        </attr>
        <attr name="borderDotted" format="dimension"/>//borderLine為dotted時(shí)美澳,設(shè)置線條的長度
        <attr name="borderBlack" format="dimension"/>//borderLine為dotted時(shí),設(shè)置線條間空格的長度
        <attr name="frameColor" format="color"/>//這個(gè)主要是ShapeShadeImageView邊上的顏色摸航,以便能與背景融合
        <attr name="shapeView" format="enum">//你想要的圖形
            <enum name="circle" value="0"/>//圓
            <enum name="round" value="1"/>//圓角矩形
            <enum name="oval" value="2"/>//橢圓
            <enum name="rightAngleCircle" value="3"/>//這就是上面圖片中尖角圖形
        </attr>
        <attr name="shapeRadius" format="dimension"/>//圓形時(shí)制跟,圓的半徑,這個(gè)也可不設(shè)置酱虎,通過直接設(shè)置寬高雨膨,會(huì)自動(dòng)計(jì)算,去掉margin和padding等長度
        <attr name="shapeHeight" format="dimension"/>//ShapeShadeView在round時(shí)設(shè)置圓角矩形的高度
        <attr name="rightAngleLocation">//圖形為rightAngleCircle時(shí)的尖角位置读串,可以組合使用聊记,以‘|’隔開,如leftTop|leftBottom|rightTop
            <flag name="leftTop" value="0x03"/>
            <flag name="leftBottom" value="0x30"/>
            <flag name="rightTop" value="0x05"/>
            <flag name="rightBottom" value="0x50"/>
        </attr>
        <attr name="cornersX" format="dimension"/>//圖形為圓角矩形時(shí)恢暖,設(shè)置的圓角
        <attr name="cornersY" format="dimension"/>//圖形為圓角矩形時(shí)排监,設(shè)置的圓角
    </declare-styleable>

使用

使用起來也很簡(jiǎn)單:

橢圓:

<com.tqp.transparentView.ShapeShadeImageView
    android:id="@+id/shapeView3"
    android:layout_width="100dp"
    android:layout_height="150dp"
    android:src="@mipmap/ic_launcher"
    android:scaleType="centerCrop"
    app:shapeView="oval" />

帶尖角的圖形

<com.tqp.transparentView.ShapeImageView
    android:id="@+id/shapeImageView2"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:src="@mipmap/ic_launcher"
    android:scaleType="centerCrop"
    app:borderWidth="4dp"
    app:borderColor="@color/bright_red"
    app:shapeView="rightAngleCircle"
    app:rightAngleLocation="leftBottom|rightTop" />

帶虛線邊框的圓形圖片

<com.tqp.transparentView.ShapeShadeImageView
    android:id="@+id/shapeView2"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:src="@mipmap/ic_launcher"
    android:scaleType="centerCrop"
    app:borderWidth="4dp"
    app:borderColor="@color/bright_red"
    android:layout_marginTop="10dp"
    app:shapeView="rightAngleCircle"
    app:rightAngleLocation="rightBottom|leftTop" />

上面的自定義view支持Android api14和api14以上。

引入庫的方法

第一步杰捂,在項(xiàng)目所在的build.gradle中加入maven { url 'https://jitpack.io'}

allprojects {
    repositories {
       ...
        maven { url 'https://jitpack.io'}
    }
}

第二步舆床,在app所在的build.gradle下的dependencies中依賴implementation 'com.github.tangqipeng:shapeTransparentView:1.4'就好。

這樣就可以使用了

附加

shapeTransparentView中還有一個(gè)遮罩的view是ShapeShadeView嫁佳,也支持上面的所有屬性設(shè)置挨队。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蒿往,隨后出現(xiàn)的幾起案子盛垦,更是在濱河造成了極大的恐慌,老刑警劉巖瓤漏,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件情臭,死亡現(xiàn)場(chǎng)離奇詭異省撑,居然都是意外死亡赌蔑,警方通過查閱死者的電腦和手機(jī)俯在,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來娃惯,“玉大人跷乐,你說我怎么就攤上這事≈呵常” “怎么了愕提?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長皿哨。 經(jīng)常有香客問我浅侨,道長,這世上最難降的妖魔是什么证膨? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任如输,我火速辦了婚禮,結(jié)果婚禮上央勒,老公的妹妹穿的比我還像新娘不见。我一直安慰自己,他們只是感情好崔步,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布稳吮。 她就那樣靜靜地躺著,像睡著了一般井濒。 火紅的嫁衣襯著肌膚如雪灶似。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天瑞你,我揣著相機(jī)與錄音酪惭,去河邊找鬼。 笑死捏悬,一個(gè)胖子當(dāng)著我的面吹牛撞蚕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播过牙,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼甥厦,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了寇钉?” 一聲冷哼從身側(cè)響起刀疙,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扫倡,沒想到半個(gè)月后谦秧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體竟纳,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年疚鲤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锥累。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡集歇,死狀恐怖桶略,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情诲宇,我是刑警寧澤际歼,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站姑蓝,受9級(jí)特大地震影響鹅心,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜纺荧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一旭愧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧虐秋,春花似錦榕茧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至靶剑,卻和暖如春蜻拨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背桩引。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來泰國打工缎讼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坑匠。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓血崭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親厘灼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子夹纫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容