import android.view.*;
import android.graphics.*;
public class 对象{
public String 类名="对象";
public String 名字="";
public 对象 父对象=null;
public 对象[] 内部对象=null;
public int x=0,y=0,宽=0,高=0;
public int XWindex=0;
public boolean 按下=false,移动=false;
public String 状态="";
public boolean 显示=true,内部对象显示=true;
public boolean 事件=true,内部对象事件=true;
public 对象(int x,int y,int 宽,int 高){
this.x=x;
this.y=y;
this.宽=宽;
this.高=高;
}
public 对象(){}
public void 显示(Canvas c){
if(显示){
行为(c);
功能(c);
if(内部对象显示){
运行内部对象(c);
}
}
}
public void 事件(MotionEvent e){
if(事件){
行为(e);
功能(e);
if(内部对象事件){
运行内部对象(e);
}
if(e.getAction()==MotionEvent.ACTION_UP){
按下=false;
移动=false;
}
}
}
public void 行为(Canvas c){}
public void 行为(MotionEvent e){}
//向对象内部组装对象
public void 装入对象(对象 dx){
dx.父对象=this;
this.内部对象=合并(this.内部对象,dx);
}
//实现所有内部对象的显示行为
public void 运行内部对象(Canvas c){
int i=0;
if(内部对象!=null){
while(i<内部对象.length){
内部对象[i].显示(c);
i++;
}
}
}
//实现所有内部对象的事件行为
public void 运行内部对象(MotionEvent e){
int i=0;
if(内部对象!=null){
while(i<内部对象.length){
内部对象[i].事件(e);
i++;
}
}
}
public void 功能(Canvas c){}
public void 功能(MotionEvent e){}
public boolean 物理按键(int key,KeyEvent event){
按键行为(key,event);
int i=0;
if(内部对象!=null){
while(i<内部对象.length){
内部对象[i].物理按键(key,event);
i++;
}
}
return true;
}
private void 按键行为(int key,KeyEvent event){
if(key==KeyEvent.KEYCODE_BACK)按键返回();
}
public void 清空某类(String 类名){
对象[] dx=null;
int i=0;
while(i<内部对象.length){
if(!内部对象[i].类名.equals(类名)){
dx=合并(dx,内部对象[i]);
}else 内部对象[i]=null;
i++;
}
内部对象=dx;
}
public int 查询某对象对位置(String 名字){
int i=0;
if(内部对象!=null){
while(i<内部对象.length){
if(内部对象[i].equals(名字)){
break;
}
i++;
}
}
return i;
}
public void 清除某对象(String 名字){
if(内部对象!=null){
对象[] dx=null;
int i=0;
while(i<内部对象.length){
if(!内部对象[i].名字.equals(名字)){
dx=合并.合并(dx,内部对象[i]);
}else 内部对象[i]=null;
i++;
}
内部对象=dx;
}
}
public static 对象[] 合并(对象[] a,对象 b){
对象[] jieguo=null;
if(a!=null)jieguo=new 对象[a.length+1];
else jieguo=new 对象[1];
if(a!=null){
int i=0;
while(i
if(i
else jieguo[i]=b;
i++;
}
}else jieguo[0]=b;
return jieguo;
}
public void 按键返回(){}
}
这是非常重要的一个类,是整个框架实现的基础,虽然代码不多,却包含整个思想,以后大部分的UI对象都将继承至这个类。
下面对所有变量和方法进行详细介绍:
String 类名="对象";
这个变量用于标识类别,继承至这个类后的新的类别重写这个变量标识所属类。当程序里要对单独某类处理时这个变量很有用处。
String 名字="";
这个变量用于标识具体某个对象,当我们在一堆对象集合里可以通过名字很好的找到对象,并对它进行操作。
对象 父对象=null;
此变量在当前对象被另一个对象所装入时获得另一个对象的实例。
对象[] 内部对象=null;
每当有别的对象装入这个对象时,这个变量用于存放装入的对象,装入的所有对象的事件()和显示()这两个方法都会被本对象实现,无论对象和对象之间嵌套多少层。
int x=0,y=0,宽=0,高=0;
这4个变量用于描述对象在屏幕坐标上的位置和自身所占的范围,如果你要写一个继承至对象的按键,这4个变量就很重要了。
下面开始介绍方法:
显示(Canvas c);
由于窗体类(View)实现了内部变量环境(对象)的显示方法,所以所有对象无论怎么装,只要最终被窗体所装入,他们的显示方法都将被实现。此方法用于绘制当前类和所有内部对象。
事件(MotionEvent e);
同上,不同的是,这是一个获得触屏行为和坐标的。
运行内部对象(Canvas c);
运行内部对象(MotionEvent e);
用于实现所有内部对象的显示和事件,由于所装入的对象也是对象它们也会自动实现自己内部对象的所有显示和行为,而它们的所有内部对象的每个对象又会从复这两个方法,所以无论一个对象系统有多复杂它的每部分都将被实现。