首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Android 安装包优化】Tint 着色器 ( 简介 | 布局文件中的 Tint 着色器基本用法 | 代码中使用 Tint 着色器添加颜色效果 )

文章目录 一、Tint 着色器简介 二、布局文件中的 Tint 着色器基本用法 三、代码中使用 Tint 着色器添加颜色效果 四、参考资料 一、Tint 着色器简介 ---- Tint 着色器的作用是是..., 设置一个颜色值 , 即可将该图片显示为指定颜色的图片 ; 这样一张图片 , 可以显示多种不同颜色的效果 , 从而减少了 APK 打包的图片数量 , 减少了 APK 安装包的大小 ; 该 tint 着色器效果是将非透明的像素点...0.5" app:tint="@color/purple_700" app:srcCompat="@drawable/ic_plane"/> 二、布局文件中的 Tint 着色器基本用法.../res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com...import android.graphics.drawable.Drawable import android.os.Bundle import android.widget.ImageView import

1.7K10

【OpenGL ES】OpenGL ES 2.0 -- 制作 3D 彩色旋转三角形 - 顶点着色器 片元着色器 使用详解

检查错误方法 : 检查每一步是否出现错误 public static void checkGLError(String op) 流程 : 循环获取错误信息, 知道出现异常将异常信息打印出来 c....(2)获取OpenGL中的错误信息 GLES20.glGetError(); 返回一个int类型的错误码 , 如果没有错误 , 就会返回 GLES20.GL_NO_ERROR 常量....; import android.opengl.GLES20; import android.util.Log; /* * 这个工具类用来加载定点着色器与片元着色器 */ public class..., 如果错误代码为0, 那么就没有错误 * * @param op 具体执行的方法名, 比如执行向着色程序中加入着色器, * 使glAttachShader()方法, 那么这个参数就是...相关api (1) 设置OpenGL版本 GLSurfaceView.setEGLContextClientVersion(int version) 作用 : 设置OPenGL的版本号, version

1.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    OpenGL ES 3.0 | 围绕HelloTriangle实战案例 展开 渲染流程分析

    第一行: 声明使用的着色器版本, #version 300 es 表示 OpenGL ES着色语言V3.00; 这个顶点着色器声明一个输入属性数组——一个名为vPosition的4分量向量; Hello..., compiled, 0 ); 查看 着色器编译结果状态; 编译失败,则 报错(打印错误信息) 并 删除着色器实例; 编译成功,则返回 着色器id,后续 用于连接到程序对象; 创建一个程序对象并链接着色器...、检查编译错误、 创建程序对象、连接着色器、链接程序并检查链接错误等流程; 程序对象 成功链接之后, 就可使用 程序对象 进行渲染了!...; import android.opengl.GLES30; import android.opengl.GLSurfaceView; import android.util.Log; public...android.content.pm.ConfigurationInfo; import android.opengl.GLSurfaceView; import android.os.Bundle;

    1.6K10

    【Android 音视频开发打怪升级:OpenGL渲染视频画面篇】一、初步了解OpenGL ES

    3、 OpenGL ES版本 目前主要版本有1.0/1.1/2.0/3.0/3.1 1.0:Android 1.0和更高的版本支持这个API规范 2.0:不兼容 OpenGL ES 1.x。...Android 2.2(API 8)和更高的版本支持这个API规范 3.0:向下兼容 OpenGL ES 2.x。...Android 4.3(API 18)及更高的版本支持这个API规范 3.1:向下兼容 OpenGL ES3.0/2.0。...Android 5.0(API 21)和更高的版本支持这个API规范 2.0 版本是 Android 目前支持最广泛的版本,后续主要以该版本为主,进行介绍和代码编写。...五、总结 经过上面简单的绘制三角形和纹理贴图,可以总结出Android中OpenGL ES的2D绘制流程: 通过GLSurfaceView配置OpenGL ES版本,指定Render 实现GLSurfaceView.Renderer

    2K51

    OpenGL ES 3.0 简介

    Android 4.3 + 和 iPhone 5s + 已经支持OpenGL ES 3.0。 OpenGL ES 3.0 向后兼容 OpenGL ES 2.0。...下图中深色背景的 顶点着色器 和 片段着色器 为可编程阶段。 顶点着色器 顶点着色器 实现了顶点操作的通用可编程方法。...以下为顶点着色器示例: #version 300 es //提供着色语言的版本 必须出现在第一行 uniform mat4 u_mvpMatrix; # 统一变量 储存组合的模型视图和投影矩阵 in...片段着色器示例: #version 300 es //提供着色语言的版本 precision mediump float; # 默认的精度限定符 in vec4 v_color; # 片段着色器的输入...任何其他类型和修饰符都会引起错误。包括全局变量声明,函数返回值声明,函数参数声明,和本地变量声明等。没有声明精度修饰符的变量将使用和它最近的precision语句中的精度。

    1.4K20

    SurfaceView简单理解,Android混淆,Android openGl开发详解简单图形的绘制,

    移除无效的类、类成员、方法、属性等; \2. 优化。...分析和优化方法的二进制代码;根据proguard-android-optimize.txt中的描述,优化可能会造成一些潜在风险,不能保证在所有版本的Dalvik上都正常运行。 \3. 混淆。...需要注意的是,这一流程不受shrinkResources属性控制,也无法被禁止, gradle 必然会做这项工作,因为假如不同项目中存在相同名称的资源将导致错误。...同时,如果重复资源在同一层次出现,比如src/main/res/ 和 src/main/res2/,则 gradle 无法完成资源合并,这时会报资源合并错误。...OpenGl的简单使用实例(绘制一个三角形) 在使用OpenGl之前,需要在AndroidManifest.xml中设置OpenGl的版本:这里我们使用的是OpenGl ES 2.0,所以需要添加如下说明

    8600

    Android OpenGL开发实践 - GLSurfaceView对摄像头数据的再处理

    一般来说,NV21和YV12两种格式是所有Android机型都支持的,其他格式可能在不同机型上有兼容性问题。YUV数据格式不是本文关注的重点,在此不对其格式及兼容性作详细说明。...这就存在一些问题,比如希望对每一帧图像数据进行一些处理后再显示到屏幕上,在Android3.0之前是没有办法做到的。...SurfaceTexture是从Android3.0(API 11)加入的一个新类。这个类跟SurfaceView很像,可以从相机预览或者视频解码里面获取图像流。...Android系统自带了OpenGL的嵌入式版本:OpenGL ES,相比完整的OpenGL版本接口要少了一些接口,但对一般移动端处理的需求来说足够了。...我们在前面拿到了摄像头纹理mPreviewTextureId[0],需要注意的是,在Android中Camera产生的预览纹理是以一种特殊的格式传送的,因此片段着色器里的纹理类型并不是普通的sampler2D

    13.1K124

    Android OpenGL ES 基础原理

    而作为一名Android开发者,是时候来了解一下关于Android方面渲染方面的知识。音视频的应用都离不开OpenGL ES的处理。对于视频的高效渲染与融合操作是至关重要的。...Android支持多种版本的OpenGL ES API: 1.0&1.1 Android1.0及以上 2.0 Android2.2及以上 3.0 Android4.3及以上 3.1 Android5.0...坐标 在Android中通过Canvas进行绘制的坐标原点是在屏幕的左上角,同时它的坐标范围都是以屏幕的宽高来定义。...在创建GL程序之前,我们先来了解顶点着色器与片段着色器。 着色器源码 GL程序渲染的过程中需要确认顶点位置与对应的颜色,而这两个部分分别借助于顶点与片段着色器来实现。...可修饰声明顶点、颜色等数据 uniform:顶点着色器与片段着色器的共享数据,在程序中值的不变的,初始值由程序外部传入 varying:顶点着色器输入,片段着色器输出;由顶点着色器传输给片段着色器中的插值数据

    1K30

    three.js 粒子效果(分别基于 CPU & GPU 实现)

    前段时间做了一个基于 CPU 和 GPU 对比的粒子效果丢在学习 WebGL 的 RTX 群里,技术上没有多作讲解,有同学反馈看不太懂 GPU 版本,干脆开一篇文章,重点讲解基于 GPU 开发的版本。...只是维护粒子位移时,GPU版本稍流畅,但优势并不明显。 当然,这还得具体到设备,一些中低端Android机器,GPU太渣,不如CPU计算。...二、技术实现 three.js中,粒子效果的实现方式大概分为三种: 1、Javascript直接计算粒子的状态变化,即基于CPU实现; 2、Javascript通知顶点着色器粒子的生命周期,由顶点着色器运行...既然运算部分在顶点着色器,那么,需要我们自己书写着色器(opengl es),所以我们选用three.js中的ShaderMaterial。...vertexShader和fragmentShader,即我们要定义的顶点着色器,和片元着色器,它们负责具体的粒子状态的运算,我们定义在网页中。

    10.2K11

    OpenGL ES初探:渲染流程及GLKit简介

    OpenGL ES 是OpenGL的简化版本,是以手持和移动设备为目标的高级3D图形图像API,可以直接操作GPU硬件。...其苹果官方文档描述如下: OpenGL ES消除了一些OpenGL中移动端用不到的冗余功能,是目前主流的智能手机图形API,目前支持的平台包括:iOS、Android、BlackBerry、bada、...,再通过顶点着色器间接的传递给片元着色器。...1.2.2 着色器业务 着色器本质上是一段程序代码: 在OpenGL/OpenGL ES中,开发者所能直接编程的着色器只有顶点着色器和片元着色器,其它着色器不能由开发者直接编程,因此这里只介绍顶点着色器和片元着色器业务...GLKit框架提供了功能和类,可以减少创建新的基于着色器的应⽤用程序所需的⼯工作量量,或者⽀持依赖早期版本的OpenGL ES或OpenGL提供的固定函数顶点或片段处理理的现有应用程序。

    1.7K40

    OpenGL入门

    你购买的显卡所支持的OpenGL版本都为这个系列的显卡专门开发的。当你使用Apple系统的时候,OpenGL库是由Apple自身维护的。...在Linux下,有显卡生产商提供的OpenGL库,也有一些爱好者改编的版本。...(名称相同、类型相同) void main() { FragColor = vertexColor; } 程式 也叫着色器程序 程式对象(Shader Program Object)是多个着色器合并之后并最终链接完成的版本...当链接着色器至一个程式的时候,它会把每个着色器的输出链接到下个着色器的输入。当输出和输入不匹配的时候,你会得到一个连接错误。...2D+透视 = 3D 纹理贴图:将纹理图片附着到你绘图的图像上 混合:颜色混合效果 渲染:表示计算机从模型创建最终图像的过程 四、结束语 好了,关于OpenGL基础知识,上文已经涵盖到了,下一篇将开启Android

    2.5K40
    领券
    首页
    学习
    活动
    专区
    圈层
    工具