- 博客(20)
- 收藏
- 关注
原创 【计算机图形学】光照模型和着色频率
最近在重温计算机图形学的基础知识,期望能做到温故知新,加深对其的理解,以便能从容应对工作中各种情况。小弟水平有限,若有不正确之处,欢迎大家批评指正。
2022-07-29 00:28:58 629
原创 Android 理解LiveData内部及使用
概述LiveData是实现MVVM的关键组件。LiveData基于观察者模式,是一个观察者主体的数据持有类。不同于普通的观察者主体,LiveData是对生命周期敏感的,即它能感知activity、fragment或service等组件的生命周期。因此可以在适当的时刻结合ViewModel和底层数据存储修改前台与数据相关的UI。LiveData封装在ViewModel中使用。ViewMo...
2020-02-19 16:28:47 1005
原创 Android内存缓存——理解LruCache和LinkedHashMap
博主最近在学习Bitmap高效加载和3级缓存(内存缓存、本地缓存和网络缓存)管理。LruCache(least recent used cache)是一种高效且普遍使用的管理策略。因此,便开启了LruCache源码学习之旅。注意,本文中涉及的LruCache源码为support v4包中的LruCache。1 LruCache结构private final LinkedHashMa...
2019-01-19 13:11:51 542 2
原创 Android Camera1参数设置
谷歌推荐开发者不使用Camera1 API,使用Camera2作为相机开发的接口。但是我在一些老的项目中遇到Camera1,且还需在其基础上进行扩展。 出于好奇心,且抱着一种学习的态度,我还是总结了一些Camera1的知识。 本文主要介绍,打开相机后,如何设置相机相关的参数,如预览方向、照片方向等。在自己开发的过程中,这一部分耗时最多,因此,记录下来以便以...
2018-11-24 12:46:16 6097 1
原创 使用XferMode绘制圆角图片
前言在项目遇到了使用圆角图片的需求,之前的代码是使用XferMode实现的,但在不同的机型中出现了问题。于是我想在原代码基础上进行修改,却没有成功,于是使用裁剪的方式实现了圆角。下来后,借鉴了大牛的文章,发现了XferMode中的坑,总结后,完成的圆角的实现。XferMode中的坑原文链接奉上,非常感谢博主!https://blog.csdn.net/u013085697/article/deta...
2018-05-07 09:56:12 435
原创 Android SurfaceTexture解读
1类结构publicclass SurfaceTexture extends Object java.lang.Object ↳android.graphics.SurfaceTexture2解读2.1作用从Image Stream中捕获帧数据,用作OpenGLES的纹理,其中Image Str
2018-01-13 14:56:16 24167 1
原创 Android OpenGL ES2.0 绘制多纹理的三棱锥
效果实现使用openGL ES 2.0,分别画出三棱锥的4个面(包括底面),分别给4个面涂上纹理。着色器顶点着色器: private final String mVertexShaderWithTexture= "attribute vec3 aPosition;\n" +"uniform mat4 uMvp;\n"
2018-01-11 13:00:48 1303
原创 Android OpenGL ES2.0 setLookAtM()方法
setLookAtM()方法解析方法如下所示:void setLookAtM (float[] rm , int rmOffset ,float eyeX , float eyeY , float eyeZ , float centerX,float centerY , float centerZ , float upX , float upY , float upZ )在世界坐标
2018-01-10 13:00:21 2849
转载 Android camera2 前置摄像头auto-focus问题
问题引出Android camera2中,使用如下对焦模式,进行连续的自动对焦:mPreviewBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE); 在使用后置摄像头时,返回的AF_STATE由0变化至2,即从CONTROL_AF_STATE_INACT
2017-12-22 11:41:47 4926 1
原创 Android camera2使用
前言android.hardware.camera2包提供了与设备关联的相机的接口。它替代了之前的相机接口Camera类。博主阅读了android官方的camera2的demo,发现camera2的使用较Camera要复杂一些,但功能更强大。纸上得来终觉浅,于是自己也写了个demo,实现了自动对焦拍照。功能虽然简单,但是代码一大串,并且在实现的过程中,也发现了一些值得注意的问题。思
2017-12-13 16:01:16 1500 3
原创 Android 使用代理加载插件
最近一直在学习Android的插件化开发,看了很多大神的博客,醍醐灌顶。但是纸上得来终觉浅,自己便寻思做了个demo,加深学习理解。在实现的过程中,也发现了很多问题,因此写下这篇博客,记录这个学习过程。背景当项目越来越大的时候,需要通过插件化来减轻应用的内存和CPU占用;可以实现热插拔,在不发布新版本的情况下更新某些模块。插件化的有几种模式:简单的加载、使用代理、根据apk动态
2017-12-07 13:04:54 973
原创 Android 有点击动画效果的View
前言在项目中使用了Android内部的空间RadioButton,单击该Button时会产生如下效果。我觉得Button点击时产生的背景效果挺不错的,就寻思着自己做一个这样的效果。思路1. 要做出背景图片的轮廓,当点击的时候,轮廓要不断放大;2. 轮廓放大的过程中,其透明度要不断减小,直至消失。效果注意,我并没有考虑图片缩放的动画。一般的Button图片
2017-11-28 22:05:57 7258
原创 BDLocationListener中更新UI出错分析
使用百度地图API进行定位,当接收到定位信息后,为LocationClient对象注册的BDLocationListener会回调onReceiveLocation方法。在onReceiveLocation的BDLocation对象中获得地理信息后,将其设置到TextView上显示。程序并没有报错,但是显示发生了异常。代码如下:public void onReceiveLocation
2017-05-24 13:34:44 1569 2
翻译 Spinner使用简介
Spinner提供了一种便捷的方式从数据集中选择一个值。在默认状态下,Spinner将会展示它当前选中的值。触击Spinner会显示一个包含其他可用值的下拉菜单,从中用户可以选择一个新的值。效果如下图所示:1 在布局文件中添加Spinner标签可以使用XML文件中的为你的布局添加Spinner对象,如下所示:<Spinnerandroid:id="@+id/p
2017-05-22 18:51:11 709
原创 解决 No result defined for action xxxAction and result input
使用向action中传送数据时失败。错误报告为如下:查看控制台,发现如下问题: 之后,上网查资料,找问题,发现,本是Integer类型的id,被直接映射成String,从而导致了错误的发生。即控制台中所展示的
2016-10-18 22:57:49 24120
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人