android开发工作总结,Android开发小结(一)

一、fill_parent、match_parent、wrap_content的区别:

1. fill_parent:将强制性地使构件扩展,以填充布局单元内尽可能多的空间。

2. wrap_content:将强制性地使视图扩展以显示全部内容,大体等同于设置

Windows控件的Autosize属性为True。

3. match_parent:Android2.2中match_parent和fill_parent是一个意思

.两个参数意思一样,match_parent更贴切,于是从2.2开始两个词都可以用,那么如果考虑低版本的使用情况你就需要用fill_parent了。

二、界面更新问题:

为安全起见,Android中是不允许子线程修改主线程的UI的,因此如果要通过子线程修改主线程有关UI只能通过Handler。举例:

1.主线程中接收子线程传递来的参数值,根据该值来确定如何修改UI。(假设主线程所在的Activity名为mActivity)

public class MyHandler extends Handler{

public MyHandler (){

}

public MyHandler (Looper

L){

}

public void

handleMessage(Message msg){

super.handleMessage(msg);

Bundle b = msg.getData();

switch(msg.what){

case

0:

int shoudao = b.getInt("index");

system.out.println("来自子线程的值=" + shoudao);

break;

case ……;

}

}

}

2.子线程向主线程传递Message。

public void sendHandlerMessage(){

Message msg = new Message();

Bundle b = new Bundle();// 存放数据

msg.what = 0;//设置msg的what值,主线程根据该值来判断接收的消息是来自谁

b.putInt("index", 15455);

msg.setData(b);

mActivity.myHandler.sendMessage(msg);

}

三、常用getWindow().setFlags方法:

//设置窗体全屏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

//设置窗体始终点亮

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,

WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

//设置窗体背景模糊

getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,

WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

四、常用方法:

1.

获取屏幕的宽/高:getWindowManager().getDefaultDisplay().getWidth()、getWindowManager().getDefaultDisplay().getHigth().

五、动态改变布局的宽度、高度:

假设:1. 被改变的布局为main_leftlist_layout

2. 其父布局的属性为LinearLayout(特别注意)

那么设置其宽度、高度的代码如下:

main_leftlist_layout.setLayoutParams(new

LinearLayout.LayoutParams(55,

LinearLayout.LayoutParams.WRAP_CONTENT));

六、代码中添加新布局:

//布局规则r1、r2

//在layout1中添加两个对象img、tv

//img遵循规则r1,tv遵循规则r2

ImageView img = new ImageView(Activity.this);

TextView tv = new TextView(Activity.this);

LinearLayout.LayoutParams r1 = new LinearLayout.LayoutParams(new

LayoutParams(18, 18));

LinearLayout.LayoutParams r2 = new LinearLayout.LayoutParams(new

LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,

LinearLayout.LayoutParams.WRAP_CONTENT));

layout1.addView(img, r1);

layout1.addView(tv, r2);

七、在两个Activity之间传递参数:

1. Activity1将参数传递给Activity2,那么在Activity1中定义:

String str = "hello";

Bundle info = new Bundle();

info.putString("chuanzhi", str);

Intent intent = new Intent(Activity1.this, Activity2.class);

intent.putExtras(info);

startActivity(intent);

这样,Activity1将hello通过chuanzhi这个变量传递给Activity2.

其中,可以传递任意类型的数据。

2. Activity2接收参数chuanzhi,那么在Activity2中定义:

Intent intent = getIntent();

Bundle data = intent.getExtras();

String shoudao = (String)data.getSerializable("chuanzhi");

system.out.println("Activity1传来的字符串为:" + shoudao);

八、有关Dialog:

1.设置Dialog的宽度、高度、对齐方式等:

Dialog start_dialog = new Dialog(context,

R.style.MyDialog);

Window window = start_dialog.getWindow();

start_dialog.setCanceledOnTouchOutside(true);

start_dialog.setContentView(take_audio_start);

WindowManager.LayoutParams lp = window.getAttributes();

lp.width = 200;

lp.height = 300;

lp.gravity = Gravity.BOTTOM;

window.setAttributes(lp);

start_dialog.show();

九、intent中putExtras和putExtra的区别:

public IntentputExtra (String

name, parcelable value)

设置方法 intent.putExtra("aaa", "bbbb");

获取方法 this.getIntent().getCharSequenceExtra("aaa")

public IntentputExtras (Bundle

extras)

设置方法

Bundle bd = new Bundle();

bd.putString("aaa",“bbbb”);

intent.putExtras(bd);

获取方法

Bundle bd=this.getIntent().getExtras();

bd.getString("aaa"));

总结:带s的得通过个Bundle来绑定数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值