二、技术点: 1)ndk-build编译c代码的过程 1、ndk-build ,临时生成*.o的文件, 2、然后在生成优化的*.o.d的文件 3、然后生成*.so的文件 4、最后拷贝到libs\armeabi目录下 2)获取手机屏幕大小,获取屏幕大小,根据系统版本获取屏幕大小,获取屏幕尺寸
/**
* 1、根据系统的版本来获取屏幕的大小
* @return
*/
@SuppressWarnings("deprecation")
private void getWindowSize() {
WindowManager manager = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
Display display = manager.getDefaultDisplay();
int window_width = 0;
int window_height = 0;
// 获取手机,系统的版本
int sdkVersion = Build.VERSION.SDK_INT;// sdk版本
// 获取手机屏幕大小
if (sdkVersion < 13) {
System.out.println("当前系统版本:" + sdkVersion);
// 1、低版本
window_width = display.getWidth();
window_height = display.getHeight();
} else {
System.out.println("当前系统版本:" + sdkVersion);
// 2、高版本
Point outSize = new Point();
display.getSize(outSize);
window_width = outSize.x;
window_height = outSize.y;
}
} 3)自定义View控件,自定义组件
package cn.zengfansheng.boilerpressure; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.view.View; /** * 自定义View对象,画矩形 * @author hacket */ public class RectangleView extends View { /** * 矩形框距离屏幕最顶端距离 */ private int right; /** * 画出来矩形的颜色的颜色 */ private int color; public RectangleView(Context context, int right, int color) { super(context); this.right = right; this.color = color; } // 所有android下的view控件的显示 其实是通过 ondraw @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // canvas 代表的是屏幕的画布 // paint 画笔 // Paint paint = new Paint(); // paint.setColor(Color.RED); // paint.setTextSize(20.0f); // paint.setStrokeWidth(18.0f); // canvas.drawText("哥哥我是被画出来的", 30, 30, paint); Paint paint = new Paint(); paint.setStrokeWidth(10); paint.setColor(color); // right值,需要根据锅炉的压力 动态确定 canvas.drawRect(10, 30, right, 50, paint); } }
4)Handler+Message
|