bcoder

jPCT-AE文档阅读笔记

 分类:Uncategorized 阅读 (1,359)  jPCT-AE文档阅读笔记已关闭评论
12月 162021
 

一、环境要求

需要在Android 1.5以上运行,如果需要使用OpenGL ES 2.0,需要在Android 2.2或以上。

二、安装

下载jPCT-AE库,将jpct_ae.jar添加到项目中。

三、线程安全

jPCT-AE不是线程安全,尽量不要跨线程操作jPCT-AE的对象。

GLSurfaceView的Render方法是在Android的主UI线程中运行的吗?

答:onDrawFrame是用于进行实际渲染的方法,运行在Render子线程中。

四、Render类的两个重要方法

1、onSurfaceChanged(GL10 gl, int w, int h)

用于初始化创建或者更新World和FrameBuffer等对象。

2、onDrawFrame

实际的渲染过程所在的方法。

可以进行实际的绘制操作,也可以进行绘制帧率的计算或者控制(比如控制帧率为30fps以节省设备电量)。

五、jPCT的坐标系

通常,一些图像库的坐标系是这样的,

向右为x轴正向,向上为y轴正向,指向屏幕外为z轴正向,

但是jPCT的坐标系不太一样,jPCT和上述坐标系比较的话,围绕x轴旋转了180度,如下:

向右为x轴正向,向下为y轴正向,指向屏幕内为z轴正向。

如果你同时使用了其他不同坐标系的代码,需要对坐标进行一些转换。

六、素材加载

加载3D动画

加载3DS模型

加载obj文件

七、内存优化

https://www.jpct.net/wiki/index.php?title=Reducing_memory_usage

 Posted by on 2021-12-16

HighChart禁用标题和副标题的方法

 分类:Javascript, Others 阅读 (806)  HighChart禁用标题和副标题的方法已关闭评论
5月 092021
 

 

Android实现TextView搜索关键字高亮显示

 分类:Android, Java 阅读 (1,370)  Android实现TextView搜索关键字高亮显示已关闭评论
3月 222021
 

效果图如下:

关键字搜索不区分大小写,TextView换成EditText也同样适用

Activity部局代码如下:

Activity代码如下:

 

安卓设置系统语言的方法

 分类:Android, Java 阅读 (2,698)  安卓设置系统语言的方法已关闭评论
11月 262020
 

本文基于Android8.1系统,应用需要为系统应用

实现方法参考此链接:https://blog.csdn.net/weijuantang/article/details/41379027

通过反射实现设置语言功能的函数:

调用方法:

 

 Posted by on 2020-11-26

Android获取和设置时区

 分类:Android, Java 阅读 (4,452)  Android获取和设置时区已关闭评论
11月 262020
 

本文适用于Android8.0及以上系统,应用必须为系统应用

获取时区列表(>=Android8.0)

设置时区:

获取时区:

 

 Posted by on 2020-11-26

Android修改系统24/12小时制

 分类:Android, Java 阅读 (2,680)  Android修改系统24/12小时制已关闭评论
11月 242020
 

基于Android8.1系统测试

需要是系统应用

需要在Manifest.xml中声明如下权限:

重新定义一下系统常量(在系统里是hide的)

读取当前设置值:

设置新的值:

 

 Posted by on 2020-11-24

greenDao缓存踩坑

 分类:Android, Java 阅读 (1,760)  greenDao缓存踩坑已关闭评论
9月 042020
 

  今天在执行如下操作时发现一个奇怪的问题,首先使用update更新数据库,然后select数据进行上传,结果select出来的数据总是旧数据。查了一天更新和上传那块的代码也没发现什么问题,后来发现是greenDao的问题。

  问题:greenDao中创建DaoSession对象时默认是使用缓存的,这样select出来的数据可能就不是最新的

  解决方法:

  方法一:创建DaoSession对象的时候传入IdentityScopeType.None参数默认禁止缓存,示例如下:

  方法二:在select的时候执行一下DaoSession对象的clear方法(注:本方法笔者未验证是否有其他问题,请谨慎使用),如下:

 

关于Android系统栏中back和home键的实现

 分类:Android, Java 阅读 (2,911)  关于Android系统栏中back和home键的实现已关闭评论
8月 252020
 

本文基于Android8.1系统编写

一、背景

  今天想实现自定义的back和home键,比着葫芦画瓢,把back和home键的部局抄过来了。但怎么也没找到back和home键的java功能实现部分。

后来度娘了一下才找到实现的原理。

  参考链接:http://blog.chinaunix.net/uid-701715-id-3054850.html

  自己也记录一下

二、按钮的组件类KeyButtonView

  在部局中可以看到,back和home键用了一个自定义view,开始我还以为是为了实现按钮的动画效果才自定义了一个这个view,现在发现自己天真了!

  KeyButtonView的核心在于,他定义了一个可设置的部局属性keyCode,用于设置按钮对应的键,如下back键的部局代码:

  keyCode=”4″对应的为KeyEvent.KEYCODE_BACK键

  在KeyButtonView的构造函数中,读取并保存了这个属性:

  如此,在部局文件中设置的keyCode读到了类中

三、模拟发送按键

  原理是,拦截onTouch事件,当按钮按下时发送keyCode的ACTION_DOWN操作,当按钮弹开时发送keyCode的ACTION_UP操作,完成一次按键的操作。

  sendEvent函数,先构造KeyEvent对象,然后通过InputManager发送到系统,代码如下:

 

 Posted by on 2020-08-25

关于View类的几个宽度值的区别

 分类:Android, Java 阅读 (1,640)  关于View类的几个宽度值的区别已关闭评论
8月 172020
 

本文同样适用于高度相关的对应函数

一、几个函数

1. getWidth()

View的实际宽度

2. getMeasuredWidth()

是用setMeasureDimension设置的宽度,这个并不能作为最终的View的宽度来使用,只是在onMeasure的时候用户计算的宽度,只能在这个函数里使用?

3. getMeasuredWidthAndState()

和getMeasuredWidth()类似,但是返回的值包括measuredWidth和MEASURED_SIZE_MASK或者MEASURED_STATE_TOO_SMALL的标志位。

4. getMinimumWidth()

应该是在布局设计时,设置的minWidth属性对应的值或者使用函数setMinimumWidth动态设置的值

5. getSuggestedMinimumWidth()

如果View设置了背景,则取mMinWidth和背景的最小宽度中比较大的一个值。

6. 去除padding后的实际宽度

如果需要考虑padding参数,则去除padding后的实际内容宽度为:

getWidth() – getPaddingLeft – getPaddingRight

二、其他注意事项

1. 在onMeasure函数中不能使用getWidth()和getHeight()函数,此时这两个值都是0

2. MeasureSpec,三种度量规格:

  • UNSPECIFIED – 未指定
  • EXACTLY – 固定尺寸
  • AT_MOST – 最大值

 

 Posted by on 2020-08-17