Android基础UI编程(1)

来源:互联网 发布:sqlserver企业版价格 编辑:程序博客网 时间:2024/05/22 13:02

1.关于Color的基础知识,先看代码

   public class TestMyColor extends Activity {
      /** Called when the activity is first created. */
   private LinearLayout myLayout;
   private LinearLayout.LayoutParams layoutP;
   private int WC = LinearLayout.LayoutParams.WRAP_CONTENT; 
   private TextView black_TV;
 
      @Override   
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          //实例化一个LinearLayout对象
          myLayout = new LinearLayout(this);
          //设置LinearLayout布局为垂直布局
          myLayout.setOrientation(LinearLayout.VERTICAL);
          //设置LinearLayout的背景图片
          myLayout.setBackgroundResource(R.drawable.back);
          //加载主屏幕
          setContentView(myLayout);
          //实例化一个LinearLayout布局,用了添加View
          layoutP = new LinearLayout.LayoutParams(WC,WC);
          //构造实例化TextView对象
          constructTextView();
          //设置TextView颜色
          setTextViewColor();
          //设置TextView文本
        setTextViewText();
        //把TextView加入到布局中
        myLayout.addView(black_TV,layoutP);
      }   
   
      private void setTextViewText() {
   black_TV.setText("绿色");  
  }

  private void setTextViewColor() {
     black_TV.setBackgroundColor(Color.GREEN);  
  }

  private void constructTextView(){
     black_TV = new TextView(this);
  }   
 }

  现在开始分析这个代码:

  LinearLayout这个东东,在android里面有几种布局方式 ,分别是FrameLayout,LinearLayout,TableLayout,AbsoluteLayout,RelativeLayout。

  FrameLayout布局:这是最简单的布局对象,所有的子元素都布局在屏幕的左侧,不能为子元素指定位置。

  LinearLayout布局:看名字就知道了,安装行或者列的方式布局,整个屏幕只有一行或者一列,可以选择横向还是纵向进行布局。子元素将依次排列。

  TableLayout布局:表格、网格布局,这种布局不需要解释,大家都知道。

  AbsoluteLayout布局:绝对位置布局,需要指定每个元素的绝对位置。如需要知道X轴和Y轴的位置。

  RelativeLayout布局:相对位置布局,通过知道相对于其它元素的位置来布局。

  Android的布局方式类似于CSS和HTML,个人感觉。主要是必须手动写位置我觉得最麻烦,什么时候有图形化工具就好了。

 

  继续回答LinearLayout上来,在这个Demo中,用的是LinearLayout布局,LinearLayout有几个重要属性LayoutParams,这个东西相当于一个消息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去。
可以这样去形容LayoutParams,在象棋的棋盘上,每个棋子都占据一个位置,也就是每个棋子都有一个位置的信息,如这个棋子在4行4列,这里的“4行4列”就是棋子的LayoutParams。
  LinearLayout.LayoutParams.WRAP_CONTENT这个是设置填充的样式,这里是设置包裹内容,与WRAP_CONTENT相同的还有FILL_PARENT表示填充满,MATCH_PARENT其实内容和FILL_PARENT是一样的,从sdk2.2开始,FILL_PARENT改名为MATCH_PARENT。