Auto.jsjava布局转UI布局,自己定义uii.layout()-创新互联
"ui";
自定义布局()
view=uii.layout( );
ui.setContentView(view)
uii.按钮6.setOnClickListener(new android.view.View.OnClickListener(){ onClick:function(p1){ toast("完成")
}
});
function 自定义布局(){importClass(android.widget.Button);
importClass(android.widget.LinearLayout);
importClass(android.content.DialogInterface);
importClass(android.graphics.Color);
uii={ layout:function (xml){ var bj=xml.toString().split("\n")
var 主布局 = new LinearLayout(context);
fenge(bj,0,主布局,0)
return 主布局;
}
}
}
function fenge(bj,j,zbj,c){for(var i=j;i if(geshi(bj[i])=="<0>"){ log(c+"进布局"+bj[i])
var bjc=fenxi(bj[i].replace(/^\s+|\s+$/g,""))//分析控件
i++;
i=fenge(bj,i,bjc[0],c+1)
if(bjc.length==1){zbj.addView(bjc[0])
}else{zbj.addView(bjc[0],bjc[1])
}
}else if(geshi(bj[i])=="0>"){ log(c+"退布局"+bj[i])
return i
}else if(geshi(bj[i])=="<0/>"){ var bjc=fenxi(bj[i].replace(/^\s+|\s+$/g,""))//分析控件
if(bjc.length==1){zbj.addView(bjc[0])
}else{zbj.addView(bjc[0],bjc[1])
}
log(c+"添加"+bj[i])
}
}
}
function shuzi(str){if(!str){ return false
}
var pp=str.match(/^\d+$/g)
if(pp){ return true
}
return false;
}
function geshi(nr){var pp=nr.match(/<\/|<|\/>|>/g)
if(pp){ var str=""
for(var i=0;i str=str+pp[i]+"0"
}
return str.replace(/0$/,"");
}
return false;
}
function fenxi(str){var tou=str.split(" ")[0].match(/\w+/g)[0]
var wei=str.match(/\w+="(\w|\d|[\u4e00-\u9fa5]|\*)+"/g)
var dx='{'
for(var i=0;i var fg=wei[i].split("=")
dx+='"'+fg[0].replace(/^\s+|\s+$/g,"")+'":'+fg[1].replace(/^\s+|\s+$/g,"")+","
}
dx=JSON.parse(dx.replace(/.$/g,'}'))
return bj_linear(tou,dx)//线布局
}
function bj_linear(tou,dx){if(tou=="linear"){ 线布局 = new LinearLayout(context);
if(dx.bg){ 线布局.setBackgroundColor(Color.parseColor(dx.bg));
}
if(dx.orientation){ if(dx.orientation=="vertical"){线布局.setOrientation(1);//1.卡片布局
}else if(dx.orientation=="horizontal"){线布局.setOrientation(0);//0.水平布局
}
}
return [线布局,chicun(dx)];
}else if(tou=="button"){ var 按钮 = new Button(context);
if(dx.text){ 按钮.setText(dx.text)
}
if(dx.id){ uii[dx.id]=按钮;
}
return [按钮,chicun(dx)];
}
}
function chicun(dx){var w=-2 //适应内容宽度
var h=-2 //适应内容宽度
if(dx.w){ if(shuzi(dx.w)){ w=dx.w-0 //实际宽度
}else if(dx.w=="*"){ w=-1 //适应父控件宽度
}
}
if(dx.h){ if(shuzi(dx.h)){ h=dx.h-0 //实际宽度
}else if(dx.h=="*"){ h=-1 //适应父控件宽度
}
}
log("适应="+w+","+h)
return new LinearLayout.LayoutParams(w,h);
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
创新互联是由多位在大型网络公司、广告设计公司的优秀设计人员和策划人员组成的一个具有丰富经验的团队,其中包括网站策划、网页美工、网站程序员、网页设计师、平面广告设计师、网络营销人员及形象策划。承接:成都网站制作、成都网站建设、网站改版、网页设计制作、网站建设与维护、网络推广、数据库开发,以高性价比制作企业网站、行业门户平台等全方位的服务。当前标题:Auto.jsjava布局转UI布局,自己定义uii.layout()-创新互联
网页路径:http://ybzwz.com/article/goccj.html