自定義view刮刮卡效果

2021-07-11 18:42:38 字數 2589 閱讀 8185

要實現這種效果,必須要知道這樣乙個類

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 方法...