
UI组件
1、线性布局
<?xml version="1.0" enCoding="utf-8"?> <linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:orIEntation="vertical" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:gravity="right|center_vertical"> <button androID:ID="@+ID/bn1" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="@string/bn1"/> <button androID:ID="@+ID/bn2" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="@string/bn2"/> <button androID:ID="@+ID/bn3" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="@string/bn3"/> <button androID:ID="@+ID/bn4" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="@string/bn4"/> <button androID:ID="@+ID/bn5" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="@string/bn5"/> </linearLayout>
结果截图
2、表格布局
<?xml version="1.0" enCoding="utf-8"?> <linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:orIEntation="vertical" androID:layout_wIDth="match_parent" androID:layout_height="match_parent"> <!--定义第一个表格布局,指定第2列允许收缩,第3列允许拉伸--> <tableLayout androID:ID="@+ID/tableLayout01" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:shrinkColumns="1" androID:stretchColumns="2"> <!--直接添加按钮,他会自己占一行--> <button androID:ID="@+ID/ok1" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="独自一行的按钮"/> <!--添加一个表格行--> <tableRow> <!--为该表格行添加3个按钮--> <button androID:ID="@+ID/ok2" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="普通按钮"/> <button androID:ID="@+ID/ok3" androID:layout_height="wrap_content" androID:layout_wIDth="wrap_content" androID:text="收缩的按钮"/> <button androID:ID="@+ID/ok4" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="拉伸的按钮"/> </tableRow> </tableLayout> <!--定义第二个表格布局,指定第二列隐藏--> <tableLayout androID:ID="@+ID/tableLayout02" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:collapseColumns="1"> </tableLayout> <!--定义第三个表格布局,指定第2列和第3列可以被拉伸--> <tableLayout androID:ID="@+ID/tableLayout03" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:stretchColumns="1,2"> <!--直接添加按钮,他会自己占一行--> <button androID:ID="@+ID/ok9" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="独自一行的按钮"/> <!--添加一个表格行--> <tableRow> <!--为该表格行添加3个按钮--> <button androID:ID="@+ID/ok10" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="普通按钮"/> <button androID:ID="@+ID/ok11" androID:layout_height="wrap_content" androID:layout_wIDth="wrap_content" androID:text="拉伸的按钮"/> <button androID:ID="@+ID/ok12" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="拉伸的按钮"/> </tableRow> <tableRow> <!--为该表格行添加3个按钮--> <button androID:ID="@+ID/ok13" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="普通按钮"/> <button androID:ID="@+ID/ok14" androID:layout_height="wrap_content" androID:layout_wIDth="wrap_content" androID:text="拉伸的按钮"/> </tableRow> </tableLayout> </linearLayout>
3、帧布局
实例:霓虹灯效果
<?xml version="1.0" enCoding="utf-8"?><FrameLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="match_parent" androID:layout_height="match_parent"><!--依次定义6个TextVIEw,先定义的TextVIEw位于底层,后定义的TextVIEw位于上层--> <TextVIEw androID:ID="@+ID/vIEw1" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_gravity="center" androID:wIDth="320pt" androID:height="320pt" androID:background="#f00" /> <TextVIEw androID:ID="@+ID/vIEw2" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_gravity="center" androID:wIDth="280pt" androID:height="280pt" androID:background="#0f0"/> <TextVIEw androID:ID="@+ID/vIEw3" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_gravity="center" androID:wIDth="240pt" androID:height="240pt" androID:background="#00f"/> <TextVIEw androID:ID="@+ID/vIEw4" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_gravity="center" androID:wIDth="200pt" androID:height="200pt" androID:background="#ff0"/> <TextVIEw androID:ID="@+ID/vIEw5" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_gravity="center" androID:wIDth="160pt" androID:height="160pt" androID:background="#f0f"/> <TextVIEw androID:ID="@+ID/vIEw6" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_gravity="center" androID:wIDth="120pt" androID:height="120pt" androID:background="#0ff"/></FrameLayout>
package com.example.myapplication1;import androIDx.appcompat.app.AppCompatActivity;import androID.os.Bundle;import androID.os.Handler;import androID.os.Message;import androID.Widget.TextVIEw;import java.util.Timer;import java.util.TimerTask;public class MainActivity extends AppCompatActivity {private int currentcolor=0;final int[] colors=new int[]{ R.color.color1, R.color.color2, R.color.color3, R.color.color4, R.color.color5, R.color.color6,};final int[] names=new int[]{ R.ID.vIEw1, R.ID.vIEw2, R.ID.vIEw3, R.ID.vIEw4, R.ID.vIEw5, R.ID.vIEw6,};TextVIEw[] vIEws=new TextVIEw[names.length];Handler handler=new Handler(){ @OverrIDe public voID handleMessage(Message msg) { //表明消息来自本程序发送的 if(msg.what==0x123) { for(int i=0;i<names.length;i++) { vIEws[i].setBackgroundResource(colors[(i+currentcolor)%names.length]); } currentcolor++; } super.handleMessage(msg); }}; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); for (int i = 0; i < names.length; i++) { vIEws[i] = (TextVIEw) findVIEwByID(names[i]); } //定义一个线程周期性的改变currentcolor变量值 new Timer().schedule(new TimerTask() { @OverrIDe public voID run() { //发送一条空消息通知系统改变6个TextVIEw组件的背景色 handler.sendEmptyMessage(0x123); } }, 0, 200); }}
结果截图
4、相对布局
实例:梅花布局效果
<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="match_parent" androID:layout_height="match_parent"><!--定义该组件位于父容器中间--> <TextVIEw androID:ID="@+ID/vIEw1" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:background="@drawable/leaf" androID:layout_centerInParent="true"/><!--定义该组件位于vIEw1的上方--> <TextVIEw androID:ID="@+ID/vIEw2" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:background="@drawable/leaf" androID:layout_above="@ID/vIEw1" androID:layout_alignleft="@ID/vIEw1"/> <!--定义该组件位于vIEw1的下方--> <TextVIEw androID:ID="@+ID/vIEw3" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:background="@drawable/leaf" androID:layout_below="@ID/vIEw1" androID:layout_alignleft="@ID/vIEw1"/> <!--定义该组件位于vIEw1的左方--> <TextVIEw androID:ID="@+ID/vIEw4" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:background="@drawable/leaf" androID:layout_toleftOf="@ID/vIEw1" androID:layout_aligntop="@ID/vIEw1"/> <!--定义该组件位于vIEw1的右方--> <TextVIEw androID:ID="@+ID/vIEw5" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:background="@drawable/leaf" androID:layout_toRightOf="@ID/vIEw1" androID:layout_aligntop="@ID/vIEw1"/></relativeLayout>
结果截图
5、网格布局
实例:计算机界面
<?xml version="1.0" enCoding="utf-8"?><GrIDLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:rowCount="6" androID:columnCount="4" androID:ID="@+ID/root"><!--定义一个横跨4列的文本框--> <TextVIEw androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:layout_columnSpan="4" androID:textSize="50sp" androID:layout_marginleft="2pt" androID:layout_marginRight="2pt" androID:padding="3pt" androID:layout_gravity="right" androID:background="#eee" androID:textcolor="#000" androID:text="0"/><!--定义一个横跨四列的按钮--> <button androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:layout_columnSpan="4" androID:text="清除"/></GrIDLayout>
package com.example.myapplication3;import androIDx.appcompat.app.AppCompatActivity;import androID.graphics.drawable.GradIEntDrawable;import androID.os.Bundle;import androID.vIEw.Gravity;import androID.Widget.button;import androID.Widget.GrIDLayout;public class MainActivity extends AppCompatActivity {GrIDLayout grIDLayout;//定义16个按钮的文本 String[] chars=new String[] { "7","8","9","/", "4","5","6","*", "1","2","3","-", ".","0","=","+" }; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); grIDLayout=(GrIDLayout)findVIEwByID(R.ID.root); for(int i=0;i<chars.length;i++) { button bn=new button(this); bn.setText(chars[i]); //设置该按钮的字号大小 bn.setTextSize(40); //设置按钮四周的空白区域 bn.setpadding(5,35,5,35); //指定该组件所在的行 GrIDLayout.Spec rowSpec=GrIDLayout.spec(i/4+2); //指定该组件所在的列 GrIDLayout.Spec columnspec=GrIDLayout.spec(i%4); GrIDLayout.LayoutParams params=new GrIDLayout.LayoutParams(rowSpec,columnspec); //指定该组件占满父容器 params.setGravity(Gravity.FILL); grIDLayout.addVIEw(bn,params); } }}结果截图
6、绝对布局
实例:用户登录界面
总结
以上是内存溢出为你收集整理的android2全部内容,希望文章能够帮你解决android2所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)