Android自定義View 腐蝕面具

2021-09-11 15:04:02 字數 1033 閱讀 3388

最近一直在研究opengl,在android應用中可以很好的進行細粒度的對展示的效果進行控制,今天這個腐蝕面具的效果就是基於opengl es來做的。話不多說,先看效果圖

使用很簡單,在布局檔案中直接使用corronisonview

"@+id/corronisonview"

android:layout_width="match_parent"

android:layout_height="match_parent" />

複製**

其中duration代表了銷毀時間。 然後在mainactivity裡設定bitmap

corronisonview.setbitmap(bitmapfactory.decoderesource(resources,r.drawable.icon))

複製**

關於opengl es在android中的使用這裡就不細說了,整個過程其實就是利用了乙個紋理來顯示,然後隨著時間的推移捨棄一些片段不進行渲染。這裡主要來看一下片段著色器的**

#version 300 es

precision mediump float;

in vec2 texcoord;

out vec4 fragcolor;

uniform sampler2d sampler;

uniform float percent;

void main

()複製**

隨著時間的推移不停的設定percent,然後計算當前顏色的所有顏色分量的和如果小於總分量(也就是4.0)*percent的值的話,就捨棄該片段,不進行渲染。 在corronisonview中設定時間動畫,不停修改corronisonviewrender中percent的值

private fun preparetimeanimator

() )

this.animator = animator

}複製**

github

Android自定義View 自定義元件

自繪控制項也分兩種,自定義元件和自定義容器,自定義元件是繼承view類,自定義容器時繼承viewgrounp 今天主要分析下自定義元件 還是舉個例子來的實際些,假如我們要畫乙個最簡單的textview,首先想到的就是canvas.drawtext 方法,怎麼畫了?還是得一步一步來 1 寫乙個myte...

Android自定義View實現

android自定義view實現很簡單 繼承view或者其子類,重寫建構函式 ondraw,onmeasure 等函式,根據繼承的類的不同可能有所不同。如果自定義的view需要有自定義的屬性,需要在values下建立attrs.xml。在其中定義你的屬性。在使用到自定義view的xml布局檔案中需要...

Android 自定義View 一

android的ui介面都是由view和viewgroup及其派生類組合而成的。其中,view是所有ui元件的基類,而viewgroup是容納這些元件的容器,其本身也是從view派生出來的。androidui介面的一般結構可參見下面的示意圖 可見,作為容器的viewgroup可以包含作為葉子節點的v...