要實現這種效果,必須要知道這樣乙個類
porterduffxfermode,設定兩張重疊的效果
他有以下過濾模式:(src:imageview 的src ;dst:imageview的background)
android.graphics.porterduff.mode. src :只繪製源影象
android.graphics.porterduff.mode. dst :只繪製目標影象
android.graphics.porterduff.mode. dst_over :在源影象的頂部繪製目標影象
android.graphics.porterduff.mode. dst_in :只在源影象和目標影象相交的地方繪製目標影象
android.graphics.porterduff.mode. dst_out :只在源影象和目標影象不相交的地方繪製目標影象
android.graphics.porterduff.mode. dst_atop :在源影象和目標影象相交的地方繪製目標影象,在不相交的地方繪製源影象
android.graphics.porterduff.mode. src_over :在目標影象的頂部繪製源影象
android.graphics.porterduff.mode. src_in :只在源影象和目標影象相交的地方繪製源影象
android.graphics.porterduff.mode. src_out :只在源影象和目標影象不相交的地方繪製源影象
android.graphics.porterduff.mode. src_atop :在源影象和目標影象相交的地方繪製源影象,在不相交的地方繪製目標影象
android.graphics.porterduff.mode. xor :在源影象和目標影象重疊之外的任何地方繪製他們,而在不重疊的地方不繪製任何內容
android.graphics.porterduff.mode. lighten :獲得每個位置上兩幅影象中最亮的畫素並顯示
android.graphics.porterduff.mode. darken :獲得每個位置上兩幅影象中最暗的畫素並顯示
android.graphics.porterduff.mode. multiply :將每個位置的兩個畫素相乘,除以255,然後使用該值建立乙個新的畫素進行顯示。結果顏色=頂部顏色*底部顏色/255
android.graphics.porterduff.mode.
screen
:反轉每個顏色,執行相同的操作(將他們相乘並除以255),然後再次反轉。結果顏色=255-(((255-頂部顏色)*(255-底部顏色))/255)
**:
效果圖:package com.lei.demo.view;
import android.content.context;
import android.graphics.bitmap;
import android.graphics.canvas;
import android.graphics.cornerpatheffect;
import android.graphics.paint;
import android.graphics.path;
import android.graphics.porterduff;
import android.graphics.porterduffxfermode;
import android.graphics.rect;
import android.util.attributeset;
import android.view.motionevent;
import android.view.view;
import com.lei.demo.utils.logs;
/** * created by lei on 2016/5/11.
*/public class xformodeview extends view
public xformodeview(context context, attributeset attrs)
public xformodeview(context context, attributeset attrs, int defstyleattr)
private void initview()
//初始化滑動路徑的畫筆
void initpathpaint()
//初始化描述內容畫筆和區域
void initcontentpaintrect()
@override
protected void ondraw(canvas canvas)
@override
public boolean ontouchevent(motionevent event)
mcanvas.drawpath(mpath, mpaint);//繪製路徑
invalidate();
return true;}}
自定義揭露效果View
今天實現乙個揭露效果的自定義view 效果如下 揭露view效果 public class exposeview extends view public exposeview context context,attributeset attrs 初始 畫筆 private void init ove...
自定義view增加動畫效果
通過這一周的學習總算對自定義view比較了解了。所以也想和大家分享一下自定義view的學習方法和我學習的乙個過程。還是來看一下我們每篇比談的我們的自定義view的大綱 1.自定義view單純的用畫筆繪製view 死view 2.自定義view 增加動畫 3.自定義view增加手勢 4.自定義view...
Android自定義View 下雨效果
接下來,我們就一步一步分析該view是如何實現的 第一步 構造乙個雨滴類 雨滴類 以一根線條作為雨滴效果 public class drip 該方法用於設定雨滴兩個點的座標 private void initpoint int screenwidth,int screenheight rain 方法...