- 浏览: 26081 次
最新评论
-
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 690最近在设置一个空的游戏体,作为飞机大战游戏的边界碰撞体(用来 ... -
Android线程显示数字时钟
2013-10-05 10:59 1306package com.example.datetest; ... -
【转】如何获取Android系统时间是24小时制还是12小时制
2013-10-04 16:19 1022直接上源码: ContentResolve ... -
JAVA的String 类
2013-10-01 22:42 685String就是C++、java等编程语言中的字符串,用双引 ... -
static分配内存
2013-10-01 15:53 801类中的静态成员变量是类的所有对象都共用的成员变量。分配在内 ... -
单向链表
2013-09-30 22:05 635单向链表的结构,其中每个结点都有指针成员变量指列表中的下一个结 ... -
双向循环链表
2013-09-25 21:31 0123 -
Android之BaseAdapter从一个函数内部放到外边
2013-08-31 09:12 1246模仿 参考着ArrayAdapter将BaseAdapter ... -
Android之GridView
2013-08-27 12:57 935这次的Demo实现的是 通过BaseAdapter将图片和 ... -
Android之BaseAdapter(二)
2013-08-26 23:44 735下面是基于List这个存储结构的Adapter pack ... -
Android Adapter之BaseAdapter
2013-08-26 17:17 5621.概念 Adapter英文意 ... -
关于接口在android单选按钮下的实现
2013-08-17 14:38 1131从接口的定义方面来 ... -
Android新建Activity
2013-02-01 13:04 1320在一个Android工程,如何 ... -
ibus安装
2013-02-01 13:00 751sudo apt-get install ibus ibus- ... -
APT fro unbuntu
2013-02-01 12:58 1119超级牛力会自动上网去下载软件,但他可不是四处瞎找,而是去固定的 ... -
android中setNegativeButton和setNeutralButton的区别是什么?
2013-01-31 14:15 3089只是在android的alertDialog中封装好的一些Bu ...
相关推荐
在Android应用开发中,布局(Layout)是构建用户界面的核心元素。它定义了屏幕上控件的排列方式和相互关系。本篇文章将详细讲解Android中的五种主要布局:...在实践中不断探索,你会发现Android布局设计的乐趣与魅力。
在Android开发中,布局管理器是构建用户界面的关键部分,其中相对布局(RelativeLayout)是一种常见的布局方式。相对布局允许我们根据各个视图之间的相对位置来安排它们,这为设计复杂且灵活的用户界面提供了可能。...
在Android应用开发中,XML布局文件是构建用户界面(UI)的主要方式,它允许开发者以声明式编程的方式定义UI元素的结构和样式。...因此,熟悉Android Studio的布局工具是当前Android开发者的必备技能之一。
本文将深入探讨Android布局的各种类型及其使用方法,旨在帮助开发者更好地理解和掌握Android应用的UI设计。 首先,我们来了解Android中的基本布局类型: 1. **线性布局(LinearLayout)**:这是最基础的布局,它...
在Android开发中,界面布局是构建用户界面的关键部分。它决定了应用中各个组件的位置和排列方式,从而影响用户体验。本文将深入探讨Android界面布局的各个方面。 1、用户界面及视图层次 Android用户界面主要由View...
【Android布局文件详解】 在Android应用开发中,界面设计是一个至关重要的环节,而XML格式的布局文件正是构建这些界面的核心工具。布局文件定义了应用程序界面的结构,包括它所包含的控件、控件间的相对位置以及...
Android XML 布局属性详解 Android XML 布局属性是 Android 应用程序中最基本也是最重要的一部分。它负责控制屏幕上的各种控件的布局和排列。 Android XML 布局属性可以分为三类:第一类是属性值为 true 或 false ...
下面我们将详细探讨Android布局及其在实际应用中的使用。 Android支持多种布局管理器,每种都有其特定的用途: 1. **线性布局(LinearLayout)**:这是最基础的布局,可以将子视图水平或垂直排列。通过设置`...
在Android开发中,框架布局(FrameLayout)是基础布局之一,它允许你在屏幕上放置一个或多个视图,并且这些视图会按照它们被添加到布局中的顺序覆盖彼此。本教程将深入探讨如何有效地使用Android框架布局,这对于...
在Android开发中,布局(Layout)是构建用户界面的基础元素,它定义了屏幕上控件的排列方式和相互关系。本文将深入探讨Android中常见的几种布局及其使用方法,以帮助开发者更好地构建美观且功能丰富的应用程序。 一...
在Android开发中,布局...通过下载并研究"android框架布局demo",你将有机会亲手实践这些概念,进一步加深对Android布局管理的理解,并提高你的应用开发技能。记得不断探索和尝试,让自己的应用界面更加精美和高效。
线性布局是最简单的布局之一,它可以将子视图以水平或垂直的方式排列。主要属性包括: - `android:orientation="horizontal"`:设置线性布局为水平方向。 - `android:orientation="vertical"`:设置线性布局为垂直...
在Android应用开发中,...理解并熟练运用这些属性,是成为一名合格的Android应用开发者所必需的技能之一。在实际项目中,结合不同类型的布局(如线性布局、帧布局等),开发者可以创造出既美观又实用的移动应用界面。
在Android开发中,自定义布局是提升应用独特性和用户体验的重要手段。`CircleLayout`就是一种特殊的自定义布局,它使得内部的子视图按照圆形排列,增强了界面的视觉效果。本篇文章将深入探讨如何实现这样一个自定义...
在Android应用开发中,卡片布局(Card View)是一种常见的UI设计模式,用于呈现信息块,使其看起来像一张张卡片,以此提升用户体验并增加界面的视觉吸引力。卡片布局通常包含一个标题、内容以及可能的附加信息,如...
Android Tablayout 自定义Tab布局的使用案例 Android Tablayout 是 Android 设计库中的一部分,主要用于实现标签页功能。Tablayout 中的 Tab 可以自定义布局,以满足不同的需求。本文将 introduction 了 Android ...
在Android应用开发中,框架布局是构建用户界面(UI)不可或缺的部分。Android提供了一系列的布局管理器,使得开发者能够有效地组织和控制应用中的组件。本文将深入探讨Android框架布局的使用,包括各种常用布局的...
在Android开发中,布局管理器是构建用户界面的关键部分,其中线性布局(LinearLayout)是最基础也是最常用的布局之一。线性布局按照垂直或水平方向将子视图(Views)排列,如同一串珠子般依次排开。下面我们将深入...
在Android开发中,为了使应用界面更具吸引力和用户体验,开发者经常需要实现各种独特的布局效果。本教程将聚焦于“门票布局”这一特定的设计,通过它,我们可以为应用增添一种新颖、有趣的视觉呈现方式,如同真实的...
ios 布局工程例子,可以像android一样布局,ios 布局工程例子,可以像android一样布局ios 布局工程例子,可以像android一样布局ios 布局工程例子,可以像android一样布局ios 布局工程例子,可以像android一样布局ios...