安卓应用的界面编程

安卓应用中的所有组件都继承了View类,View组件很像Swing中的JPanel,一个空白的矩形区域。
ViewGroup容器控制其子组件的分布依赖于ViewGroup.LayoutParams、ViewGroup.MarginLayoutParams两个内部类,对应的XML属性:
android:layout_height、android:layout_width、android:layout_marginBottom、android:layout_marginLeft、android:layout_marginRight、android:layout_marginTop

用Java代码开发UI示例:
public class A extends Activity{
      //当第一次创建该Activity时回调该方法
     public void onCreate(Bundle savedInstanceState){
          super.onCreate(savedInstanceState);
           //创建一个线性布局管理器
          LinearLayout layout=new LinearLayout(this);
           //设置该Activity显示layout
          super.setContentView(layout);
           //创建一个Button
          Button bn=new Button(this);
          bn.setText(R.string.ok);
          bn.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT));
           //向Layout容器中添加Button
          layout.addView(bn);
           //为Button绑定一个事件监听器
          bn.setOnClickListener(new OnClickListener(){
               public void onClick(View v){
                     //事件动作
               }
          });
     }
}
上例中,无论哪种组件,都传入了一个this参数,本质上是Context参数(Activity和Service都继承了Context),代表访问安卓应用环境的全局信息的API,这样可以让这些UI组件通过该Context组件获取安卓应用环境的全局信息。

开发自定义View(在配置文件中使用自定义View时要使用类的全限定名)
定义一个继承View的基类的子类,然后重写View类的一个或者多个方法,通常可以被用户重写的方法如下:
构造器:重写构造器是定制View的最基本方式,当Java代码创建一个View实例,或根据XML布局文件加载并构建界面时将需要调用该构造器。
onFinishInflate():这是一个回调方法,当应用从XML布局文件加载该组件并利用它来构建界面之后,该方法将会被回调。
onDraw(Canvas):当该组件将要绘制它的内容时回调该方法进行绘制。
onKeyDown(int,KeyEvent):当某个键被按下时触发该方法。
onTouchEvent(MotionEvent):当发生触摸屏事件时触发该方法。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值