在android的实际开发中,内存和性能一直都是我们很大的一块问题,作为开发者我们需要在从一开始就需要注意:
为毛需要绘制几何图形
图片处理一直都是我们一直很头痛的问题,图片不仅需要压缩处理还需要能够复用的就复用,比如做成点九图等,有的时候我们需要自己去绘制集合图形,不仅方便使用,也方便释放。
友情提示:绘制的集合图形,一定要人为释放,否则就会有内存泄露,内存泄露会导致内存问题偶,这是很严重的问题
如何用lua绘制一个集合图片
lua不适用xcod2直接使用android原生来实现一些布局的时候,内存是很大的一块问题,这个时候点九图也不能够救我们,很多布局用android原生的代码就可以实现,但是在lua中我们要如何实现呢?
举例
绘制半圆形区域
在java中我们这样实现
ArcShape arcShape = new ArcShape(-90,180); //顺时针 开始角度45, 扫描的角度270 扇形
ShapeDrawable drawable = new ShapeDrawable(arcShape);
drawable.getPaint().setColor(Color.RED);
drawable.getPaint().setStyle(Style.FILL);
imageButton.setBackgroundDrawable(drawable);
那么按照lua转java原理得到
–绘制左边的圆形效果
local arcShape=luajava.newInstance("android.graphics.drawable.shapes.ArcShape",90, 180);
local drawable=luajava.newInstance("android.graphics.drawable.ShapeDrawable",arcShape);
drawable:getPaint():setColor(luajava.bindClass("android.graphics.Color").RED );
drawable:getPaint():setStyle(luajava.bindClass("android.graphics.Paint$Style").FILL);
ddd:setBackgroundDrawable(drawable);
dlayout:addView(ddd);
dlayout:setGravity(17);
context:setContentView(dlayout);
回收的方式也类似于android中的回收。
我们需要的是吧android的回收翻译成lua并调用即可。
一定要注意复用问题。