W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
不知道標(biāo)題這兩個(gè)玩意你熟不熟悉啦,如果自己實(shí)現(xiàn)過圓角或者圓形圖片,相信對(duì)這兩個(gè)名詞 并不模式,一時(shí)半伙沒想起來?沒關(guān)系,下面這個(gè)圖你可曾見過?
模式2:AvoidXfermode.Mode.AVOID
和上面的TARGET模式相反,上面是顏色一樣才改變顏色,這里是顏色不一樣反而改變顏色, 而容差值同樣帶來相反的結(jié)果,容差值為0時(shí),只有當(dāng)圖片中的像素顏色值與設(shè)置的顏色值完全不一樣 的時(shí)候才會(huì)被染色,而當(dāng)容差值達(dá)到最大值255的時(shí)候,稍微有一點(diǎn)顏色不一樣就會(huì)被染色! 我們只需簡(jiǎn)單的修改上面的例子就可以了,同一是修改下構(gòu)造AvoidXfermode的內(nèi)容! 我們改成下面這句:
avoidXfermode = new AvoidXfermode(0XFFD9E5F3,230, AvoidXfermode.Mode.AVOID);
運(yùn)行效果圖:
二兒子:PixelXorXfermode
這個(gè)則是另一種圖像混排模式,比起大兒子更簡(jiǎn)單,他的構(gòu)造方法如下:
官方API文檔:PixelXorXfermode
參數(shù)解析:
就一個(gè)16進(jìn)制帶透明值得顏色值,至于這個(gè)值的作用,是有一個(gè)算法的: PixelXorXfermode內(nèi)部是按照" opColor ^ src ^ dst "這個(gè)異或算法運(yùn)算的, 得到一個(gè)不透明的(alpha = 255)的色彩值,設(shè)置到圖像中!好吧,這是網(wǎng)上搜的 具體我也不知道,寫個(gè)例子試試效果唄~
代碼示例:
運(yùn)行效果圖:
實(shí)現(xiàn)代碼:
/** * Created by Jay on 2015/10/22 0022. */ public class PixelXorXfermodeView1 extends View{ private Paint mPaint; private Bitmap mBitmap; private PixelXorXfermode pixelxorXfermode; public PixelXorXfermodeView1(Context context) { super(context); init(); } public PixelXorXfermodeView1(Context context, AttributeSet attrs) { super(context, attrs); init(); } public PixelXorXfermodeView1(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } private void init() { mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); //抗鋸齒 pixelxorXfermode = new PixelXorXfermode(0XFFD9E5F3); mBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.iv_meizi); } @Override protected void onDraw(Canvas canvas) { canvas.drawBitmap(mBitmap, 50, 50, mPaint); mPaint.setARGB(255, 222, 83, 71); mPaint.setXfermode(pixelxorXfermode); canvas.drawRect(50, 50, 690, 1010, mPaint); } }
本節(jié)示例代碼下載:
本節(jié)小結(jié):
好吧,滿滿的罪惡感,很漂亮的一個(gè)妹子,結(jié)果給我寫demo寫成了這個(gè)樣子,別怪我,
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: