1. 程式人生 > >Android高階進階十 Android OpenGL開啟混合色

Android高階進階十 Android OpenGL開啟混合色

         這一節看看混合色的開啟,主要是實現立方體半透明的效果,但是今天這篇文章因為內容比較少,所以就增加了點觸事件,當觸及螢幕的時候,開啟半透明效果,再次點選就關閉混合效果,效果圖如下:

開啟透明混色前

開啟半透明混色後

  1.             //設定光線,,1.0f為全光線,a=50%
  2.             gl.glColor4f(1.0f,1.0f,1.0f,0.5f);    
  3.             // 基於源象素alpha通道值的半透明混合函式
  4.             gl.glBlendFunc(GL10.GL_SRC_ALPHA,GL10.GL_ONE);  

        只需增加上述方法即可開啟,現在我們通過點觸事件來控制其開啟:

  1.     @Override
  2.     publicboolean onTouchEvent(MotionEvent event) {  
  3.         // TODO Auto-generated method stub
  4.         if (event.getAction() == MotionEvent.ACTION_DOWN){  
  5.             key = !key;  
  6.         }  
  7.         returnsuper.onTouchEvent(event);  
  8.     } 

        完整程式碼如下:

  1. package org.ourunix.android.opengltest;  
  2. import java.nio.ByteBuffer;  
  3. import java.nio.ByteOrder;  
  4. import java.nio.FloatBuffer;  
  5. import java.nio.IntBuffer;  
  6. import javax.microedition.khronos.egl.EGLConfig;  
  7. import javax.microedition.khronos.opengles.GL10;  
  8. import android.app.Activity;  
  9. import android.graphics.Bitmap;  
  10. import android.graphics.BitmapFactory;  
  11. import android.opengl.GLSurfaceView;  
  12. import android.opengl.GLUtils;  
  13. import android.opengl.GLSurfaceView.Renderer;  
  14. import android.os.Bundle;  
  15. import android.view.KeyEvent;  
  16. import android.view.MotionEvent;  
  17. publicclass OpenGLTestActivity extends Activity {  
  18.     privateboolean key = false;  
  19.     /** Called when the activity is first created. */
  20.     @Override
  21.     publicvoid onCreate(Bundle savedInstanceState) {  
  22.         super.onCreate(savedInstanceState);  
  23.         GLSurfaceView glView = new GLSurfaceView(this);  
  24.         glView.setRenderer(new GLRender());  
  25. 相關推薦

    Android高階 Android OpenGL開啟混合

             這一節看看混合色的開啟,主要是實現立方體半透明的效果,但是今天這篇文章因為內容比較少,所以就增加了點觸事件,當觸及螢幕的時候,開啟半透明效果,再次點選就關閉混合效果,效果圖如下: 開啟透明混色前 開啟半透明混色後      

    Android高階之自定義View

    前言 在網上看到一張圖,花了些時間自己嘗試著寫了一個自定義View,裡面涉及到了自定義屬性、自定義View padding屬性的處理、畫筆(Paint)和畫布(Canvas)的使用、解析度適配問題、效能問題、屬性動畫等,覺得還是有些東西值的記錄一下的,效果圖如下: 自定義屬

    Android高階ToolBar

    我記得之前Android4.0的時候是actionBar,到了Android5.0以後google新出了ToolBar用以彌補ActionBar的不足。今天我們就來講一下 ToolBar的用法。其實現在Android系統的UI設計有些已經超越了IOS... 一、基本用法 1. 我們新建立一個

    Android高階之 TextInputLayout用法

    TextInputLayout見名知義與文字輸入有關係,TextInputLayout控制元件通過內嵌EditText來實現輸入文字時,根據預先設定的屬性向使用者展示相應的提醒文字並附有酷炫的動畫效果。例如,當文字框裡的字元長度大於10的時候自動給使用者提示,無需編寫額外的程

    Android高階--插曲-從Android5.0到Android9.0各版本變化

                                從Android5.0到Android9.0 自從公司提出了一些出其不意的需求之後我就下定了決心去了解安卓各版本系統的差異。這些出其不意的需求要麼屬於黑客行為,要麼還不成熟,很難順利的實現,例如做一個殺不死的APP,又

    [Android高階]

      主要本文的主要的內容來源《Android 高階進階》(顧浩鑫/著)圖書 先看一下思維導線 Android View(除ViewGroup的控制元件) 的事件處理機制,我們可以理解成一個場景。當用戶開始一個觸控的事件, 就行先從最外的Activity開始, 首先

    Android高階——繪圖篇(五)setXfermode 設定混合模式

    一、GPU硬體加速 1、概述 GPU英文全稱Graphic Processing Unit,中文翻譯為“圖形處理器”。與CPU不同,GPU是專門為處理圖形任務而產生的晶片。 在GPU出現之前,CPU一直負責著所有的運算工作,CPU的架構是有利於X86

    Android高階書籍目錄

    第1篇 基礎篇  第1章 Android觸控事件傳遞機制  1.1 觸控事件的型別  1.2 事件傳遞的三個階段  1.3 View的事件傳遞機制  1.4 ViewGroup的事件傳遞機制  第2章 Android View的繪製流程  2.1 繪製的整體流程  2.2 M

    Android高階》小密圈開通啦

    @author ASCE1885的 Github 簡書 微博 CSDN 知乎 《Android高階進階》一書的讀者可免費加入,後續會專注於原創或者分享 Android,iOS,React N

    Android高階——繪圖篇(七)Canvas 與 圖層(一)

    開篇 前面很多篇文章都用到了圖層的概念,但是一直沒有詳細介紹,今天這篇文章將詳細的介紹 Canvas 與 圖層的概念 一、如何獲得一個Canvas物件 方法一:自定義view時, 重寫onDraw、dispatchDraw方法 protect

    Android高階——繪圖篇(一)Canvas基本操作

    開篇 前面在介紹 onDraw 過程時,有提到 View 的繪製(Canvas 的使用),後續的幾篇會詳細的介紹有關 Canvas 以及 Paint 的相關操作。 Canvas 和 Paint Canvas 和 Paint 之間的關係就像我們平時畫畫需要的

    (轉)Android高階--插曲-從Android5.0到Android9.0各版本變化

                                從Android5.0到Android9.0            自從公司提出了一些出其不意的需求之後我就下定了決心去了解安卓各版本系統的差異。這些出其不意的需求要麼屬於黑客行為,要麼還不成熟,很難順利的實現,例

    Android高手教程(六)之---Android中萬能的BaseAdapter(Spinner,ListView,GridView)的使用!

    private idt save idv -- imp drawable android中 welcome 大家好!今天給大家講解一下BaseAdapter(基礎適配器)的用法,適配器的作用主要是用來給諸如(Spinner,ListView,GridView)來填充數據的。

    Android高手教程(二)之---Android與JavaScript方法相互調用!

    工程 orien lns asc eat element 加載 一個 creat 在Android中通過WebView控件,可以實現要加載的頁面與Android方法相互調用,我們要實現WebView中的addJavascriptInterface方法,這樣html才能調用a

    Android(六)子執行緒呼叫Toast報Can't create handler inside thread that has not called Looper.prepare() 錯誤

    分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

    突破自己的技術瓶頸,Android程式設計師高階,危機感

    >  突破自己的技術瓶頸,個人的技術輸入與輸出1、技術瓶頸 ; 2、工作上瓶頸 ; 3、收入上瓶頸 如何突破技術發展瓶頸?- http://www.sohu.com/a/246164204_100066886 如何持續進步,突破技術瓶頸?- http://www.soh

    Android開發高階之元件化框架搭建

    背景 當一個專案經過N手人開發,N個產品經理的蹂躪,N長時間的維護,此時一定存在大量程式碼冗餘、業務耦合、專案臃腫,資原始檔大把重複等等,不堪重負。當需要增加新功能或者修改之前某個功能的時候,我相信很多同仁都說只敢增加,不敢隨意的去刪除、修改原有的程式碼,因為不知道哪些有用,哪些沒有用。

    技術轉載:Android高手教程(二二)之---Android中幾種影象特效處理的集錦!! .

    這一節給大家分享的是Android中幾種影象特效處理的小技巧,比如圓角,倒影,還有就是圖片縮放,Drawable轉化為Bitmap,Bitmap轉化為Drawable等等. 廢話少說了,直接講解今天的例項,本例主要是先獲取桌布(getWallpaper()),然後對當前

    Android八 MVC、MVP、MVVM架構總結

    一、MVVM概述 MVVM是一種軟體開發架構,是Model-View-View Model的縮寫,在Android中要實現MVVM架構, 需要使用Databinding的框架,Databinding即資料繫結,是Google為了能在Android上實現MVV

    Android(六)子執行緒呼叫Toast報Can't create handler inside thread that has not called Looper.prepare() 錯誤

    原子執行緒呼叫Toast報Can't create handler inside thread that has not called Looper.prepare() 錯誤 今天用子執行緒調Toast報了一個Can't create handler inside thre