W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
不知道標題這兩個玩意你熟不熟悉啦,如果自己實現(xiàn)過圓角或者圓形圖片,相信對這兩個名詞 并不模式,一時半伙沒想起來?沒關系,下面這個圖你可曾見過?
模式2:AvoidXfermode.Mode.AVOID
和上面的TARGET模式相反,上面是顏色一樣才改變顏色,這里是顏色不一樣反而改變顏色, 而容差值同樣帶來相反的結果,容差值為0時,只有當圖片中的像素顏色值與設置的顏色值完全不一樣 的時候才會被染色,而當容差值達到最大值255的時候,稍微有一點顏色不一樣就會被染色! 我們只需簡單的修改上面的例子就可以了,同一是修改下構造AvoidXfermode的內容! 我們改成下面這句:
avoidXfermode = new AvoidXfermode(0XFFD9E5F3,230, AvoidXfermode.Mode.AVOID);
運行效果圖:
二兒子:PixelXorXfermode
這個則是另一種圖像混排模式,比起大兒子更簡單,他的構造方法如下:
官方API文檔:PixelXorXfermode
參數(shù)解析:
就一個16進制帶透明值得顏色值,至于這個值的作用,是有一個算法的: PixelXorXfermode內部是按照" opColor ^ src ^ dst "這個異或算法運算的, 得到一個不透明的(alpha = 255)的色彩值,設置到圖像中!好吧,這是網上搜的 具體我也不知道,寫個例子試試效果唄~
代碼示例:
運行效果圖:
實現(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é)小結:
好吧,滿滿的罪惡感,很漂亮的一個妹子,結果給我寫demo寫成了這個樣子,別怪我,
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: