学习Android视频水印,我们使用GLSurfaceView,比SurfaceView绘制效率高,而且内部实现了GLThread,绘制直接用OpenGL来进行,效率高。

GLSurfaceView的使用

可以在Activity中新建一个SurfaceView,然后使用findViewById然后使用;但是本代码直接将GlSurfaceView作为setContentView的参数;

  • 直接在整个Activity上绘制

代码如下:

    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        mGLSurfaceView = new GLSurfaceView(this);        mGLSurfaceView.setEGLContextClientVersion(2);        mGLSurfaceView.setRenderer(new MyRender(this));        //setContentView(R.layout.activity_main);        setContentView(mGLSurfaceView);    }

 

  • 单独封装一个类MyRender用来控制绘制逻辑
public class MyRender implements GLSurfaceView.Renderer {    private Context mContext;    public MyRender(Context context) {        this.mContext = context;    }    public void onSurfaceCreated(GL10 gl10, EGLConfig config) {        //设定颜色RGBA        glClearColor(1.0f, 0.0f, 0.0f, 0.0f);    }    public void onSurfaceChanged(GL10 gl10, int width, int height) {        //设置区域,x, y, width, height        glViewport(0, 0, width, height);    }    public void onDrawFrame(GL10 gl10) {        //清空屏幕,擦除屏幕上所有的颜色,用glClearColor定义的颜色填充        glClear(GL_COLOR_BUFFER_BIT);    }}

 

  • 注意GLSurfaceView的生成周期
    @Override    protected void onPause() {        super.onPause();        mGLSurfaceView.onPause();    }    @Override    protected void onResume() {        super.onResume();        mGLSurfaceView.onResume();    }

 

  • 最终显示效果为:

 

以上就为OpenGLES绘制做好了基础工作;

代码地址为:https://download.csdn.net/download/gaojun1146/10696504

更多相关文章

  1. Android培训班(15)
  2. Android(安卓)— 手撸代码学习事件分发的过程
  3. (转载) Android(安卓)RecyclerView 使用完全解析 体验艺术般的控件
  4. Android利用AChartEngine绘制图表
  5. Android(安卓)手势锁/锁屏/Pin解锁,一种精简高大上且实用的手势锁
  6. Android培训班(73)Dex文件里类定义dvmDefineClass
  7. Android中使用OnClickListener接口实现按钮点击的低级失误
  8. 【Android】通过Java代码替换TabHost中的drawableTop资源
  9. Android培训班(72)Dex文件里类定义dvmDefineClass

随机推荐

  1. Android(安卓)应用内存管理-onTrimMemory
  2. Android实现通讯录功能
  3. Android报错:open failed: EACCES (Permis
  4. Android(安卓)MMS/SMS(二)
  5. ViewAnimator教程
  6. 【RK3399】Android(安卓)9.0 系统更改记
  7. monkey的基本定义及基本使用(菜鸟学习中)
  8. android sqllite数据库的多表联合查询
  9. Android开发中textStyle=”bold”无效的
  10. Android监听器的实现方法