12 2017 档案
摘要:前面的文章主要是整理的Android 官方文档对OpenGL ES支持的介绍。通过之前的文章,我们基本上可以完成的基本的形状的绘制。 这是本人做的整理笔记: https://github.com/renhui/OpenGLES20Study 目前到这里第一阶段的学习,也就是基本的图形绘制,基本的交互
阅读全文
摘要:问题背景 在感觉正常的使用ArrayList的迭代删除的操作的时候,发现了如下的崩溃日志: 产生上述崩溃的代码如下: 感觉上述代码是没问题的啊,单线程下我们这么写是没问题的,但是特殊的是此段代码位于一个静态方法里面。没有加同步语句,而且上面还有一个执行添加操作的静态方法,两个方法操作一个静态变量。
阅读全文
摘要:一、HLS 概述 HLS 全称是 HTTP Live Streaming,是一个由 Apple 公司提出的基于 HTTP 的媒体流传输协议,用于实时音视频流的传输。目前HLS协议被广泛的应用于视频点播和直播领域。 1. 原理介绍: 通过将整条流切割成一个小的可以通过 HTTP 下载的媒体文件, 然后
阅读全文
摘要:在解析JSONObject的字符数据的时候,可以考虑去使用optString 解析网络JSON数据时,获取数据的两个方法optString和getString; 使用optString获取数据时,即使后台服务器没有发送这个字段过来,他也不会报JSONException异常; getString获取的
阅读全文
摘要:背景 在Android开发过程中,我们经常碰到的情况就是在我们不清楚为什么情况下,程序突然出现Crash了。其中有一类日志相信大家都经常碰到过,这类日志就是OOM相关的日志。这类日志除了我们知道的Bitmap操作的时候会经常导致,还有一种隐藏的较深的原因就是内存泄露(Memory Leak)。 内存
阅读全文
摘要:在使用OpenGL ES做开发的时候,发现不是所有机型对OpenGL的代码都兼容的那么好,同样的代码在某些机型上总是会出现问题,但是在其他手机上就是好的。下面是本人总结的OpengGL 兼容问题: 一、验证当前手机支持的Opengl版本 android获取当前手机Opengl版本的方法 二、机型问题
阅读全文
摘要:像旋转三角形一样,通过预设程序来让对象移动对于吸引注意是很有用的,但是如果你想让你的OpenGL图形有用户交互呢?让你的OpenGL ES应用有触摸交互的关键是,扩展你的GLSurfaceView的实现重载onTouchEvent()方法来监听触摸事件。 本节内容将向你展示如何监听触摸事件来让用户旋
阅读全文
摘要:在屏幕上绘制图形只是OpenGL的相当基础的特点,你也可以用其他的Android图形框架类来实现这些,包括Canvas和Drawable对象。OpenGL ES为在三维空间中移动和变换提供了额外的功能,并提供了创建引人注目的用户体验的独特方式。 在本文中,你将进一步使用OpenGL ES学习怎样为你
阅读全文
摘要:OpenGL ES环境允许你以更接近于你眼睛看到的物理对象的方式来显示你绘制的对象。物理查看的模拟是通过对你所绘制的对象的坐标进行数学变换完成的: Projection — 这个变换是基于他们所显示的GLSurfaceView的宽和高来调整绘制对象的坐标的。没有这个计算变换,通过OpenGL绘制的形
阅读全文
摘要:在上文中,我们使用OpenGL定义了能够被绘制出来的形状了,现在我们想绘制出来它们。使用OpenGLES 2.0来绘制形状会比你想象的需要更多的代码。因为OpenGL的API提供了大量的对渲染管线的控制能力。 本文就将讲述如何使用OpenGL ES 2.0 API来绘制出来我们上节定义的形状。 一、
阅读全文
摘要:在上篇文章,我们能够配置好基本的Android OpenGL 使用的环境。但是如果我们不了解OpenGL ES如何定义图像的一些基本知识就使用OpenGL ES进行绘图还是有点棘手的。所以能够在OpenGL ES的View里面定义要绘制的形状是进行高端绘图操作的第一步。 本文主要做的事情就是为了讲解
阅读全文
摘要:零:环境搭建目的 为了在Android应用程序中使用OpenGL ES绘制图形,必须要为他们创建一个视图容器。其中最直接或者最常用的方式就是实现一个GLSurfaceView和一个GLSurfaceView.Renderer。GLSurfaceView是用OpenGL绘制图形的视图容器,GLSurf
阅读全文
摘要:简介OpenGL ES 谈到OpenGL ES,首先我们应该先去了解一下Android的基本架构,基本架构下图: 在这里我们可以找到Libraries里面有我们目前要接触的库,即OpenGL ES。 根据上图可以知道Android 目前是支持使用开放的图形库的,特别是通过OpenGL ES API来
阅读全文
摘要:一、音效的分类 音效按照作用的不同,可以将音效分为即时音效和背景音乐。两种音效在Android中的实现技术是不同的。 主要的实现方式为:SoundPool、MediaPlayer。 区别在于,MediaPlayer会在播放音频的时候,会占用大量的系统资源,并且播放的时候,还需要缓冲,有较大的时延。但
阅读全文
摘要:在使用WebView中,我们不可避免的会接触到WebView加载失败的异常处理的需求,这时候,需要我们监听失败的方法也就是onReceivedError方法: public class CustomWebViewClient extends WebViewClient { @Override pub
阅读全文