- 浏览: 25289 次
最新评论
-
dingran:
啥原理呢?这是从哪查询出来的字段呢?研究透彻些吧
【转】如何获取Android系统时间是24小时制还是12小时制 -
dingran:
dingran 写道未来程序员 写道dingran 写道看看这 ...
Android之BaseAdapter从一个函数内部放到外边 -
dingran:
未来程序员 写道dingran 写道看看这篇文章:http:/ ...
Android之BaseAdapter从一个函数内部放到外边 -
未来程序员:
dingran 写道看看这篇文章:http://hw12877 ...
Android之BaseAdapter从一个函数内部放到外边 -
dingran:
看看这篇文章:http://hw1287789687.itey ...
Android之BaseAdapter从一个函数内部放到外边
Android布局是应用界面开发的重要一环,在Android中,共有五种布局方式,分别是:LinearLayout (线性布局),FrameLayout(框架布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。
一、LinearLayout
他首先是一个一个从上往下罗列在屏幕上。每一个LinearLayout里面又可分为垂直布局(android:orientation="vertical")和水平布局(android:orientation="horizontal" )。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:text="Up" android:id="@+id/Button03" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:text="left" android:id="@+id/Button01" android:width="120px" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <Button android:text="right" android:id="@+id/Button02" android:width="120px" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> </LinearLayout> </LinearLayout>二、TableLayout
类似于Html每行一个TableRow,可以放置0或者多个控件
<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/TableLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TableRow android:gravity="center"> <Button android:text="Text1" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button> </TableRow> <TableRow android:gravity="center"> <TextView android:text="第一行第0列" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> <TextView android:text="第一行第1列" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> <Button android:text="Text2" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button> </TableRow> <TableRow android:gravity="center"> <TextView android:text="第二行第0列" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> <TextView android:text="第二行第1列" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> </TableRow> </TableLayout>
三、RelativeLayout
不用像LinearLayout一样在xml把控件按照顺序写下,当然按照顺序写下方便查看,如果是自己选的的顺序,直接写下也可以的。
相对布局可以理解为某一个元素为参照物,来定位的布局方式。
android:layout_方向 = id 表示 在这个id对应的控件的方向上(上|下)
android:layout_align方向 = id 表示和这个控件的(上下左右)对齐
android: layout_to方向Of = id 表示在这个控件的 左或者右
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:id="@+id/btnmiddle" android:text="Middle" android:layout_width="200px" android:layout_height="wrap_content" android:layout_centerInParent="true"> </Button> <Button android:id="@+id/btnup" android:text="Up" android:layout_width="100px" android:layout_height="wrap_content" android:layout_above="@id/btnmiddle" android:layout_alignLeft="@id/btnmiddle"> </Button> <Button android:id="@+id/btndown" android:text="down" android:layout_width="100px" android:layout_height="wrap_content" android:layout_below="@id/btnmiddle" android:layout_alignRight="@id/btnmiddle"> </Button> <Button android:id="@+id/btnfirst" android:text="first" android:layout_width="100px" android:layout_height="wrap_content" android:layout_above="@id/btnup" android:layout_alignLeft="@id/btnmiddle"> </Button> </RelativeLayout>
四、AbsoluteLayout
AbsoluteLayout 这个布局方式很简单,主要属性就两个 layout_x 和 layout_y 分别定义 这个组件的绝对位置。 即,以屏幕左上角为(0,0)的坐标轴的x,y值,当向下或向右移动时,坐标值将变大。AbsoluteLayout 没有页边框,允许元素之间互相重叠(尽管不推荐)。
<?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:text="UserName:" android:layout_height="wrap_content" android:id="@+id/tvName" android:layout_y="20dip" android:layout_x="50dip"> </TextView> <TextView android:layout_width="wrap_content" android:text="Password:" android:layout_height="wrap_content" android:id="@+id/tvPassword" android:layout_y="100dip" android:layout_x="55dip"> </TextView> <EditText android:layout_width="150px" android:layout_height="wrap_content" android:id="@+id/tvPassword" android:layout_y="10dip" android:layout_x="120dip"> </EditText> <EditText android:layout_width="150px" android:layout_height="wrap_content" android:id="@+id/tvPassword" android:layout_y="90dip" android:layout_x="120dip"> </EditText> </AbsoluteLayout>
五、FrameLayout
它被定制为你屏幕上的一个空白备用区域,之后你可以在其中填充一个单一对象 — 比如,一张你要发布的图片。所有的子元素将会固定在屏幕的左上角;你不能为FrameLayout中的一个子元素指定一个位置。后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)
用一个例子解决
通过点击来更换图片
package com.example.linearlayouttext; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; public class MainActivity extends Activity { private String TAG = "FramLayoutTestActivity"; private ImageView image1; private ImageView image2; private ImageView image3; private List<ImageView> list; private int count=0; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { //关联 super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); image1=(ImageView)findViewById(R.id.image1); image2=(ImageView)findViewById(R.id.image2); image3=(ImageView)findViewById(R.id.image3); //建了一个list用来存储图片 list=new ArrayList<ImageView>(); list.add(image1); list.add(image2); list.add(image3); } //监听 用来更换图片 @Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub if(event.getAction()==MotionEvent.ACTION_DOWN) { showImage(); } return super.onTouchEvent(event); } private void showImage() { image1.setVisibility(View.VISIBLE); count=count%3; for(ImageView i:list) { i.setVisibility(View.INVISIBLE); } list.get(count).setVisibility(View.VISIBLE); count++; } }
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#897753" > <ImageView android:id="@+id/image1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:visibility="invisible" android:src="@drawable/flower"/> <ImageView android:id="@+id/image2" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/f2"/> <ImageView android:id="@+id/image3" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/f3"/> </FrameLayout>
评论
3 楼
dingran
2013-08-29
比如微信的最简单的登录界面,然后再到后面的更复杂的界面,一定要高度模仿着试试,这样才叫实战。
2 楼
dingran
2013-08-29
找个微信的apk,解压后找到那些图片资源文件,充分利用,模仿着做其中一个界面吧。等以后慢慢就可以全部界面都模仿出来了。
1 楼
dingran
2013-08-29
1.布局方面以后还要关注,特别是现在主流应用程序的界面布局,你要能够模仿着做出来,找一个主流的模仿一下吧。
2.代码布局也是很有用的,虽然他比较老套了,但是你必须要会并且明白代码布局的道理,找个其中的例子使用代码布局吧。
3.view的显示和隐藏以及消失都是很常用的,不妨就从这几个例子中测试测试吧,
2.代码布局也是很有用的,虽然他比较老套了,但是你必须要会并且明白代码布局的道理,找个其中的例子使用代码布局吧。
3.view的显示和隐藏以及消失都是很常用的,不妨就从这几个例子中测试测试吧,
发表评论
-
Unity自学笔记-近期错误汇总
2014-06-18 19:49 665最近在设置一个空的游戏体,作为飞机大战游戏的边界碰撞体(用来 ... -
Android线程显示数字时钟
2013-10-05 10:59 1276package com.example.datetest; ... -
【转】如何获取Android系统时间是24小时制还是12小时制
2013-10-04 16:19 980直接上源码: ContentResolve ... -
JAVA的String 类
2013-10-01 22:42 650String就是C++、java等编程语言中的字符串,用双引 ... -
static分配内存
2013-10-01 15:53 769类中的静态成员变量是类的所有对象都共用的成员变量。分配在内 ... -
单向链表
2013-09-30 22:05 609单向链表的结构,其中每个结点都有指针成员变量指列表中的下一个结 ... -
双向循环链表
2013-09-25 21:31 0123 -
Android之BaseAdapter从一个函数内部放到外边
2013-08-31 09:12 1204模仿 参考着ArrayAdapter将BaseAdapter ... -
Android之GridView
2013-08-27 12:57 904这次的Demo实现的是 通过BaseAdapter将图片和 ... -
Android之BaseAdapter(二)
2013-08-26 23:44 704下面是基于List这个存储结构的Adapter pack ... -
Android Adapter之BaseAdapter
2013-08-26 17:17 5191.概念 Adapter英文意 ... -
关于接口在android单选按钮下的实现
2013-08-17 14:38 1092从接口的定义方面来 ... -
Android新建Activity
2013-02-01 13:04 1290在一个Android工程,如何 ... -
ibus安装
2013-02-01 13:00 722sudo apt-get install ibus ibus- ... -
APT fro unbuntu
2013-02-01 12:58 1087超级牛力会自动上网去下载软件,但他可不是四处瞎找,而是去固定的 ... -
android中setNegativeButton和setNeutralButton的区别是什么?
2013-01-31 14:15 3058只是在android的alertDialog中封装好的一些Bu ...
相关推荐
Android之布局实例,五种布局都有实例,很好的例子,值得收藏
Android 相对布局实例 ,RalateLayout
Android xml布局文件工具
android界面布局详解
Android流式布局简单实现,通过继承ViewGroup,重写OnLayout方法,实现标签的流式布局
这个程序写了对相对布局和绝对布局的例子,帮助大家理解两者的使用和区别。
Android约束布局ConstraintLayout使用完全解析 Android约束布局ConstraintLayout使用完全解析
android 布局生成图片,封装工具类 ,简单实用,viewgroup生成图片分享微信,快速转化
android 自定义view流式布局,
android 流式布局 子项的添加和移除 等功能
ios 布局工程例子,可以像android一样布局,ios 布局工程例子,可以像android一样布局ios 布局工程例子,可以像android一样布局ios 布局工程例子,可以像android一样布局ios 布局工程例子,可以像android一样布局ios...
常用的几种安卓布局历程,eclipse平台,可以直接导入
android 布局 android 布局android 布局android 布局
一个Android标签布局.zip,又一个android标签布局
Android UI 布局.ppt
android框架布局的使用,对框架布局理解的好例子,可以作为初学者的好教程。
设计Android应用程序的界面经常用到xml格式的布局文件。一个布局文件的作用是描述了: - 界面包含哪些控件(也叫组件或视图;示例有按钮,下拉框); - 控件之间的位置关系; - 如何显示界面的整体外观和各个...
Android布局文件的属性值解析说明: 1 android:id [为控件指定相应的ID] 2 android:text [指定控件当中显示的文字 需要注意的是 这里尽量使用strings xml文件当中的字符串] 3 android:gravity [指定View组件的对齐...
android框架布局的使用android常用布局的介绍
AndroidXML布局属性详解,简介直接。。。值得一看哦