Android控件动态使用
2010-05-31 14:50:00 来源:WEB开发网myLayout.addView( bt );
//将水平布局的LinearLayout及其内如所有控件添加到主layout中
layout.addView( myLayout );
}
/**
* 动态增加一个发送文件的会话条目
* 但为了保障ProgressBar和Button的底色符合设计要求,增加了一个LinearLayout,并设置其背景色
* @param layout 欲添加到的目标layout
* @param context 构建View控件的必须参数 既View控件的环境
* @param bgColur 控件的背景色
* @param MSG 控件要现实的文本内容
*/
private void setSendFile2(LinearLayout layout, Context context, int bgColur, String fileName)
{
setSendMsg( layout, context, bgColur, "正在发送"+fileName );
LinearLayout myLayout = new LinearLayout(context);
myLayout.setBackgroundColor( bgColur );
myLayout.setOrientation( LinearLayout.VERTICAL );//控件对其方式为垂直,默认为水平
//ProgressBar的默认风格是圆环型,这里需要设置她的风格为Horizontal(水平线)
pb = new ProgressBar(context,null,android.R.attr.progressBarStyleHorizontal);
pb.setLayoutParams( LP_FW );
pb.setProgress( 45 ); //设置第1进度为45
pb.setSecondaryProgress( 0 ); //这里我们不需要第2进度,所以为0
myLayout.addView( pb );
Button bt = new Button(context);
bt.setLayoutParams( LP_WW );
bt.setText( "取消" );
myLayout.addView( bt );
layout.addView( myLayout );
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
Log.d("onKeyDown:", " keyCode=" + keyCode + " KeyEvent=" + event);
switch (keyCode)
{
case KeyEvent.KEYCODE_DPAD_UP:
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
//右左按键可以控制第一进度的增减
pb.setProgress( pb.getProgress()-5 );
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
pb.setProgress( pb.getProgress()+5 );
break;
case KeyEvent.KEYCODE_DPAD_CENTER:
break;
case KeyEvent.KEYCODE_0:
break;
}
return super.onKeyDown(keyCode, event);
}
}
更多精彩
赞助商链接