用代码写Layout

这两天继续学习Android,前面我大致的了解一下layout的元素,当时说应该提倡layout文件设计布局样式,经过这两天一些资料的学习和自己写的代码,觉得如何开发应用,在java代码中描绘样式也是一种可取的办法,主要是他有很灵活的方式。

先贴一段刚刚出炉的代码吧,后面再细细分析:

public class study extends Activity {

OnClickListener listener = new OnClickListener(){

public void onClick(View v){ setTitle(”this despise face.”);}

};

OnClickListener listener2 = new OnClickListener(){

public void onClick(View v){ setTitle(”this is surprise face.”);}

};

OnClickListener listener3 = new OnClickListener(){

public void onClick(View v){ finish();}

};

/** Called when the activity is first created. */

private final int L = LinearLayout.LayoutParams.WRAP_CONTENT;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

LinearLayout layout = new LinearLayout(this);

//定义这个布局中元素采用的纵向布局

layout.setOrientation(LinearLayout.VERTICAL);

ImageButton ibt1 = new ImageButton(this);

//引用了drawable的名为despise的文件图片

Drawable dr = this.getResources().getDrawable(R.drawable.despise);

ibt1.setBackgroundDrawable(dr);

//设置样式参数组

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(L,L);

//绑定一个点击时间

ibt1.setOnClickListener(listener);

//元素与布局框架的绑定

layout.addView(ibt1, params);

ImageButton ibt2 = new ImageButton(this);

dr = this.getResources().getDrawable(R.drawable.surprise);

ibt2.setBackgroundDrawable(dr);

ibt2.setOnClickListener(listener2);

//设置离左离上的位置,默认单位是像数

params.leftMargin = 10;

params.topMargin = 10;

layout.addView(ibt2, params);

LinearLayout layout2 = new LinearLayout(this);

layout2.setOrientation(LinearLayout.HORIZONTAL);

Button ibt3 = new Button(this);

dr = this.getResources().getDrawable(R.drawable.happy);

ibt3.setBackgroundDrawable(dr);

ibt3.setOnClickListener(listener3);

ibt3.setText(”Canale”);

//将第一个布局框架作为一个元素单元与第二个第一的框架绑定

layout2.addView(layout, params);

LinearLayout.LayoutParams params3 = new LinearLayout.LayoutParams(L,L);

params3.leftMargin = 10;

params3.topMargin = 30;

layout2.addView(ibt3, params3);

//将第二个布局框架显示出来

setContentView(layout2);

}

}

这是一个简单的布局,但是其中使用到了几个常用的方法,是这篇记录的主题:

1、先定义了一个(LinearLayout )params布局框架,这个框架的特点在前面提过,使用左右上下布局时,很容易操作。将两个ImageButton元素放置其中,并设置为上下结构。然后再次定义一个(LinearLayout) params2,将第一个布局框架作为一个整体元素再加上一个Button元素横向布局放入其中;

2、元素属性的设置,这里对ImageButton这个对象设置了图片,以及点击时间,对Button对象设置了图片和文字。
1
)、静态资源的引用,这里使用了一个语法(R.drawable.despise)指的是drawable目录下的despise对应的对象。在Android默认目录SRC中有一个名为R.java的文件,打开这个文件:

drawablelayout下的每一个文件都对应了一常量,而values下的文件内每一个值也对应了文件内的一个常量。R.drawable.despise就是代表了要通过这个文件指向drawable下的despise值,而这个值被最终转换成了实际文件的引用。同理,如果要使用样式可以直接R.layout.main。
2
)、事件的绑定。我这里对图片设置了setOnClickListener(listener);事件,因为Android框架采用了大量的Ioc设计思想,对于绑定事件必需去实现所要求的方法,所以
new onClickListener(){ public void onClick(View v)(…);};

最后上个结果图吧,有个直观的印象。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值