android布局属性详解

合集下载

Android组件---四大布局的属性详解

Android组件---四大布局的属性详解

Android组件---四⼤布局的属性详解【声明】欢迎转载,但请保留⽂章原始出处→_→Android常见布局有下⾯⼏种:LinearLayout:线性布局。

所有的控件都是串在⼀条线上的。

RelativeLayout:相对布局。

所有的控件的位置,都是相对于⽗控件的。

FrameLayout:帧布局。

FrameLayout布局中的控件都是⼀层⼀层的。

帧布局每次添加的控件都显⽰在最上⾯,最后显⽰在界⾯上的是最后添加的⼀个控件。

TableLayout:表格布局。

表格布局可以实现的.⼀般可以使⽤线性布局实现。

AbsoluteLayout:绝对布局。

已经是废弃的状态,很少⽤了。

orientation:属性是指定线性布局的排列⽅向。

horizontal ⽔平。

线性布局默认的朝向是⽔平的。

vertical 垂直例如:android:orientation="vertical"gravity:指定当前控件⾥⾯的内容容显⽰位置。

(四⼤layout中均可使⽤)left 左边right 右边top 上边bottom 底边例如:android:gravity="center"gravity中的属性可以组合使⽤。

例如:android:gravity="bottom|right"layout_gravity:指定当前控件在⽗元素的位置。

(只在 LinearLayout 和 FrameLayout 中有效)left 左边right 右边top 上边bottom 底边centercenter_horizontalcenter_vertical例如:android:layout_gravity="center"另外,需要提⽰的是,对于 LinearLayout :当 android:orientation="vertical" 时,只有⽔平⽅向的设置才起作⽤,垂直⽅向的设置不起作⽤。

Android布局属性大全

Android布局属性大全

Android布局属性大全布局:AbsoluteLayout(绝对布局):xmlns:android="/apk/res/android"style="@..."android:clipChildren="true|false"android:clipToPadding="true|false"android:layoutAnimation="@---"android:animationCache="true|false"android:persistentDrawingCache="none|animation|scrolling|all":持续高速缓存绘图android:alwaysDrawnWithCache="true|false"android:andStatesFromChildre="true|false"android:descendantFocusability="beforeDescendants|afterDescendants|bl ocksDescendants":后裔可聚焦android:id="@+id/absoluteLayout"android:tag="@---"android:android:scrollX="---"android:android:scrollY="---"android:background="@---"android:padding="----"android:paddingLeft="----"android:paddingTop="----"android:paddingRight="----"android:paddingBotton="---"android:focusable="true|false"android:focusableInTouchMode="true|false"android:visibility="visible|invisible|gone"android:fitsSystemWindows="true|false":适合系统窗口android:scrollbars="none|horizontal|vertical"android:scrollbarStyle="insideOverlay(内覆盖)|insideInset(内插图)|outsideOverlay(外覆盖)|outsideInset(外插图)"android:isScrollContainer="true|false":是一个滚动集合android:fadeScrollbars="true|false":褪色的滚动条android:scrollbarFadeDuration="---":卷轴淡出android:scrollDefaultDelayBeforeFade="---":滚动前默认延迟android:scrollbarSize="---"android:scrollbarThumbHorizontal="@----":拇指水平滚动条android:scrollbarThumbVertical="@----":拇指垂直滚动条android:scrollbarTrackVertical="@---":垂直滚动条轨道android:scrollbarTrackHorizontal="@---":水平滚动条轨道android:scrollbarAlwaysDrawHorizontalTrack="true|false":水平滚动条总是吸引轨道android:scrollbarAlwaysDrawVerticalTrack="true|false":垂直滚动条总是吸引轨道android:fadingEdge="none|horizontal|vertical":衰落的边缘android:fadingEdgeLength="---":边长衰落android:nextFocusLeft="----":下左焦点android:nextFocusUp="---":下一个重点注册android:nextFocusRight="---":正确的下一个重点android:nextFocusDown="---":下一个焦点下移android:clickable="true|false":点击android:longClickable="true|false"android:saveEnabled="true|false":启用保存android:drawingCacheQuality="auto|low|hight":绘图缓存质量android:keepScreenOn="true|false":保持屏幕android:duplicateParentState="true|false":重复父状态android:minHeight="---":android:minWidth="----":android:soundEffectEnabled="true|false":音效启用android:hapticFeedbackEnable="true|false":触觉反馈启用android:contentDescription="@---":内容概述android:onClick="@---":android:layout_gravity="top|bottom|right|left|center_vertical|center_ horizontal|fill_vertical|fill_horizontal|center|fill|clip_vertical|cl ip_horizontal":重力android:layout_width="fill_parent|match_parent|wrap_content" android:Llayout_height="fill_parent|match)parent_wrap_content" android:layout_margin="":android:layout_marginLeft=""android:layout_marginTop=""android:layout_marginRight=""android:layout_marginBottom=""DialerFilter(拨号器过滤器):ExpandableListView(可扩展的列表视图):FrameLayout(针布局):GridView(网格视图):HorizontalScrollView(水平滚动查看):ImageSwither(图像切换):LinearLayout(线性布局):ListView(列表视图):MediaController(媒体控制器):RadioGroup(单选按钮组):RelativeLayout(相对布局):ScrollView(滚动查看):SlidingDrawer(滑动抽屉):TabHost(标签主机):TabWidget(标签控件):TableLayout(表格布局):TableRow(表行):TextSwitcher(文字切换):ViewAnimator(查看动画):ViewFlipper(参看弗利珀):ViewSwitcher(查看切换):--------------------------------------------------- GestureOverlayView(手势覆盖查看):SurfaceView(表现观):View(参看):ViewStub(查看存根):WebView(WEB视图):AnalogClock(模拟时钟):AutoCompleteTextView(自动完成文本视图):Button(按钮):CheckBox(复选框):CheckedTextView(检查的文字查看):Chronometer(时计):DatePicker(日期选择器):DigitalClock(数字时钟):EditText(编辑文字):Gallery(画廊):ImageButton(图像按钮):ImageView(图像查看):MultiAutoCompleteTextView(多自动完成文本查看): ProgressBar(进度):QuickContactBadge(快速联系徽章):Radio Button(单选按钮):RatingBar(评分酒吧):SeekBar(搜索栏:即拖拉进度条):Spinner(微调):TextView(文本视图):TimePicker(时间选择器):ToggleButton(切换按钮):TwoLineListItem(两线列表项):VideoView(视频查看):ZoomButton(变焦按钮):ZoomControls(缩放控制):Include(包括):-------------------------------<merge></merge>(合并):xmlns:android="/apk/res/android"android:layout_gravity="top|bottom|left|right|center_vertical|fill_ve rtical|center_horizontal|fill_horizontal|center|fill|clip_vertical|cl ip_horizontal"android:layout_width="fill_parent|match_parent|wrap_content" android:layout_height="fill_parent|match_parent|wrap_content" android:layout_margin=""android:layout_marginLef=""android:layout_marginTop=""android:layout_marginRight=""android:layout_marginBottom=""第一类:属性值为true或falseandroid:layout_centerHrizontal 水平居中android:layout_centerVertical 垂直居中android:layout_centerInparent 相对于父元素完全居中android:layout_alignParentBottom 贴紧父元素的下边缘android:layout_alignParentLeft 贴紧父元素的左边缘android:layout_alignParentRight 贴紧父元素的右边缘android:layout_alignParentTop 贴紧父元素的上边缘android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物第二类:属性值必须为id的引用名“@id/id-name”android:layout_below 在某元素的下方android:layout_above 在某元素的的上方android:layout_toLeftOf 在某元素的左边android:layout_toRightOf 在某元素的右边android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐第三类:属性值为具体的像素值,如30dip,40pxandroid:layout_marginBottom 离某元素底边缘的距离android:layout_marginLeft 离某元素左边缘的距离android:layout_marginRight 离某元素右边缘的距离android:layout_marginTop 离某元素上边缘的距离EditText的android:hint 设置EditText为空时输入框内的提示信息。

Android Tips---Android平台常见属性集合

Android Tips---Android平台常见属性集合
设置行间距。
android:phoneNumber
true/false
设置为电话号码的输入方式。
android:privateImeOptions
提供额外的输入法选项(字符串格式)。
android:scrollHorizontally
true/false
设置文本超出TextView的宽度的情况下,是否出现横拉条。
android:fadingEdgeLength
设置边框渐变的长度。
android:linksClickable
设置链接是否点击连接,即使设置了autoLink
android:maxLines
设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示
android:minLines
设置文本的最小行数
android:lineSpacingExtra
android:longClickable
true/false
view是否可以对长时间的click事件作出反应。
android:focusable
view是否能响应焦点事件
android:cacheColorHint
#00000000
滚动时,列表里面的view重绘时,用的依旧是系统默认的透明色,颜色值为#FF191919,要改变这种情况,只需要调用listView的setCacheColorHint(0),颜色值设置为0或者xml文件中listView的属性Android:cacheColorHint="#00000000"即可,滚动时,重绘View的时候就不会有背景颜色。
android:cursorVisible
true/false

安卓之布局总结

安卓之布局总结

安卓之布局总结Adroid布局有⼈形象地⽐喻,Android开发中的布局就相当于⼀栋建筑的外观架构。

布局⽤得好,这栋建筑的外观才美观⾼⼤上。

Android布局管理器Android布局管理器本⾝是⼀个界⾯控件,所有的布局管理器都是ViewGroup类的⼦类,都是可以当做容器类来使⽤的。

因此⼀个布局管理器中可以嵌套其他的布局管理器。

这是⾕歌上找的⼀张布局管理器层级图每⼀个ViewGroup都可以嵌套其他的ViewGroup和View(视图)。

⼀个ViewGroup的⼤⼩是相对的,它即可以是其他ViewGroup的⽗容器,也可以是其他ViewGroup的⼦容器。

在Android中,ViewGroup指代的是布局管理器,也就是下⾯要讲的布局样式,View指代的是布局管理器中的⼀个个控件。

在Android中,控件可以在XML⽂件中定义,也可以程序员根据⾃⼰的需要去定义⼀个类。

本⽂重点先不讨论视图中的控件,还是回归到布局。

Android六⼤基本布局管理器分别是:线性布局(LinearLayout)、表格布局(TableLayout)、⽹格布局(GridLayout)、相对布局(RelativeLayout)、绝对布局(AbsoluteLayout)、层布局(FrameLayout)其中,表格布局是线性布局的⼦类。

⽹格布局是android 4.0后新增的布局。

(1)线性布局线性布局会将容器内的所有控件⼀个挨着⼀个地排列。

属性:1. 排列⽅向android:orienation = “ horizontal/vertical”⽔平排列和垂直排列,Android中默认为垂直排列vertical注意:默认情况下⽔平和垂直⽅向的排列只占⼀⾏,如果⽤android:layout_width来设定控件的宽度,如果控件宽度太⼤,超出屏幕的显⽰范围,屏幕是不会显⽰超出的范围的。

2. 对齐⽅式⽤于控制元素(例如⽂字)在该控件⾥的显⽰位置。

layout的用法

layout的用法

Layout是一种常见的布局方式,它使用XML文件来描述界面布局。

Layout布局可以用于Android应用程序的界面设计。

在Layout布局中,可以使用各种属性来控制界面元素的位置和大小。

例如,可以设置控件的宽度和高度、边距、背景色等。

以下是一些Layout布局的常用属性:
* `android:layout_width`和`android:layout_height`: 用于设置控件的宽度和高度。

* `android:layout_margin`、`android:layout_marginLeft`、`android:layout_marginTop`、`android:layout_marginRight`和`android:layout_marginBottom`: 用于设置控件的边距。

* `android:background`: 用于设置控件的背景色或背景图片。

* `android:layout_weight`: 用于设置控件在水平或垂直方向上所占的比例。

* `android:singleLine`: 用于控制文本是否自动换行。

除了以上常用属性外,Layout布局还支持其他许多属性,可以根据实际需要进行使用。

Android开发自学笔记(AndroidStudio)—4.1布局组件

Android开发自学笔记(AndroidStudio)—4.1布局组件

Android开发⾃学笔记(AndroidStudio)—4.1布局组件⼀、引⾔Android的界⾯是有布局和组件协同完成的,布局好⽐是建筑⾥的框架,⽽组件则相当于建筑⾥的砖⽡。

组件按照布局的要求依次排列,就组成了⽤户所看见的界⾯。

在Android4.0之前,我们通常说Android开发五⼤布局和四⼤组件,这五⼤布局就是:1. LinearLayout 线性布局2. FrameLayout 单帧布局,也有中⽂翻译为帧布局、框架布局。

3. RelativeLayout 相对布局4. AbsoluteLayout 绝对布局5. TableLayout 表格布局⽽在Android4.0之后⼜新增了⼀种GridLayout⽹格布局。

⼆、LinearLayout线性布局线性布局是Android开发中最常见的⼀种布局⽅式,它是按照垂直或者⽔平⽅向来布局,通过“android:orientation”属性可以设置线性布局的⽅向。

属性值有垂直(vertical)和⽔平(horizontal)两种。

线性布局的排列在某⾏或者某列并不会⾃动换⾏或换列,就是说如果采⽤⽔平布局,控件宽度超过屏幕显⽰的话,后⾯的控件都将被隐藏,不会⾃动换⾏。

常⽤的属性有:1. android:orientation:可以设置布局的⽅向2. android:id - 为控件指定相应的ID3. android:text - 指定控件当中显⽰的⽂字,需要注意的是,这⾥尽量使⽤string.xml4. android:gravity - 指定控件的基本位置,⽐如说居中,居右等位置5. android:textSize - 指定控件当中字体的⼤⼩6. android:background - 指定控件所⽤的背景⾊,RGB命名法7. android:layout_width - 指定控件的宽度8. android:layout_height - 指定控件的⾼度9. android:layout_weight - 指定控件的占⽤⽐例10. android:padding - 指定控件的内边距,也就是说控件当中的内容11. android:sigleLine - 如果设置为真的话,则将控件的内容显⽰在⼀⾏当中layout_weight属性以控制各个控件在布局中的相对⼤⼩。

Android开发TableLayout属性介绍

Android开发TableLayout属性介绍

在android开发中,常见的布局方式有:LinearLayout (线性布局),RelativeLayout (相对布局),TableLayout (表格布局),AbsoluteLayout (绝对布局),FrameLayout (帧布局),今天我们主要介绍表格布局的相关属性。

TableLayout经常用到的属性有:
android:collapseColumns:以第0行为序,隐藏指定的列:
android:collapseColumns该属性为空时,效果如下图:
把android:collapseColumns=0,2--------------》意思是把第0和第2列去掉,如下图:
android:shrinkColumns:以第0行为序,自动延伸指定的列填充可用部分:
当LayoutRow里面的控件还没有布满布局时,shrinkColumns不起作用,如下图:
设置了shrinkColumns=0,1,2,布局完全没有改变,因为LayoutRow里面还剩足够的空间。

当LayoutRow布满控件时,如下图:
设置设置了shrinkColumns=2,则结果如下图,控件自动向垂直方向填充空间:
android:stretchColumns:以第0行为序,尽量把指定的列填充空白部分:
设置stretchColumns=1,则结果如下图,第1列被尽量填充(Button02与TextView02同时向右填充,直到TextView03被压挤到最后边)。

更多android开发视频入门教程,点此查看>> /course/2/。

AndroidGridLayout使用案例详解

AndroidGridLayout使用案例详解

AndroidGridLayout使⽤案例详解⽬录⼀、简介⼆、常⽤属性介绍三、平分问题四、⼩⽶计算器效果五、动态加载⼀、简介GridLayout是Android4.0引⼊的⽹格布局,使⽤它可以减少布局嵌套。

也算是常⽤,但⼀直没仔细看过,今天研究⼀下⼆、常⽤属性介绍GridLayout 使⽤属性属性作⽤android:columnCount最⼤列数android:rowCount最⼤⾏数android:orientation GridLayout中⼦元素的布局⽅向android:alignmentMode alignBounds:对齐⼦视图边界 alignMargins :对齐⼦视距内容,默认值android:columnOrderPreserved使列边界显⽰的顺序和列索引的顺序相同,默认是trueandroid:rowOrderPreserved使⾏边界显⽰的顺序和⾏索引的顺序相同,默认是trueandroid:useDefaultMargins没有指定视图的布局参数时使⽤默认的边距,默认值是falseitem属性属性作⽤android:layout_column指定该单元格在第⼏列显⽰android:layout_row指定该单元格在第⼏⾏显⽰android:layout_columnSpan指定该单元格占据的列数android:layout_rowSpan指定该单元格占据的⾏数android:layout_gravity指定该单元格在容器中的位置android:layout_columnWeight(API21加⼊)列权重android:layout_rowWeight(API21加⼊)⾏权重android:layout_gravity作⽤center不改变元素的⼤⼩,仅居中center_horizontal不改变⼤⼩,⽔平居中center_vertical不改变⼤⼩,垂直居中top不改变⼤⼩,置于顶部left不改变⼤⼩,置于左边bottom不改变⼤⼩,置于底部right不改变⼤⼩,置于右边start不改变⼤⼩,根据系统语⾔,置于开始位置end不改变⼤⼩,置于结尾fill拉伸元素控件,填满其应该所占的格⼦fill_vertical仅垂直⽅向上拉伸填充fill_horizontal仅⽔平⽅向上拉伸填充clip_vertical垂直⽅向上裁剪元素,仅当元素⼤⼩超过格⼦的空间时clip_horizontal⽔平⽅向上裁剪元素,仅当元素⼤⼩超过格⼦的空间时注意使⽤layout_columnSpan 、layout_rowSpan时要加上layout_gravity属性,否则没有效果;另外item在边缘时宽⾼计算会出现错误,需要我们⼿动设置宽⾼,否则达不到想要的效果三、平分问题GridLayout在API21时引⼊了android:layout_columnWeight和android:layout_rowWeight来解决平分问题那么在API21以前的,想要平分的话:引⽤兼容包compile 'com.android.support:gridlayout-v7:25.+'注意:1. 使⽤该控件,命名空间使⽤app2. 单独设置app:layout_columnWeight时,这⼀列的所有item都设置为这个属性,才能达到预期效果,否则这⼀列中设置了该属性的item,都会被隐藏,显⽰不出来3. 单独设置app:layout_rowWeight时,没有问题四、⼩⽶计算器效果<?xml version="1.0" encoding="utf-8"?><android.support.v7.widget.GridLayoutxmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:id="@+id/grid_layout"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#ece7e7"app:alignmentMode="alignBounds"app:columnCount="4"app:orientation="horizontal"app:rowCount="5"app:useDefaultMargins="false"tools:context="com.strivestay.gridlayoutdemo.MainActivity"><!-- 如果不使⽤ app:layout_gravity="fill",则实际下⾯这个textview的宽度只是wrap_content,实现不了想要的right|bottom效果;或者,⽤app:layout_columnWeight="1",效果等同,填充满--><TextViewandroid:gravity="right|bottom"android:text="0"app:layout_columnSpan="4"app:layout_rowWeight="3"app:layout_columnWeight="1"/><TextViewandroid:layout_margin="1dp"android:background="#ffffff"android:gravity="center"android:text="AC"android:textColor="#f68904"app:layout_columnWeight="1"app:layout_rowWeight="1"/><TextViewandroid:layout_margin="1dp"android:background="#ffffff"android:gravity="center"android:text="退格"app:layout_columnWeight="1"app:layout_rowWeight="1"/><TextViewandroid:layout_margin="1dp"android:background="#ffffff"android:gravity="center"android:text="/"app:layout_rowWeight="1"/> <TextViewandroid:layout_margin="1dp" android:background="#ffffff" android:gravity="center"android:text="*"app:layout_columnWeight="1" app:layout_rowWeight="1"/> <TextViewandroid:layout_margin="1dp" android:background="#ffffff" android:gravity="center"android:text="7"app:layout_columnWeight="1" app:layout_rowWeight="1"/> <TextViewandroid:layout_margin="1dp" android:background="#ffffff" android:gravity="center"android:text="8"app:layout_columnWeight="1" app:layout_rowWeight="1"/> <TextViewandroid:layout_margin="1dp" android:background="#ffffff" android:gravity="center"android:text="9"app:layout_columnWeight="1" app:layout_rowWeight="1"/> <TextViewandroid:layout_margin="1dp" android:background="#ffffff" android:gravity="center"android:text="—"app:layout_columnWeight="1" app:layout_rowWeight="1"/> <TextViewandroid:layout_margin="1dp" android:background="#ffffff" android:gravity="center"android:text="4"app:layout_columnWeight="1" app:layout_rowWeight="1"/> <TextViewandroid:layout_margin="1dp" android:background="#ffffff" android:gravity="center"android:text="5"app:layout_columnWeight="1" app:layout_rowWeight="1"/> <TextViewandroid:layout_margin="1dp" android:background="#ffffff" android:gravity="center"android:text="6"app:layout_columnWeight="1" app:layout_rowWeight="1"/> <TextViewandroid:layout_margin="1dp" android:background="#ffffff" android:gravity="center"android:text="+"app:layout_columnWeight="1" app:layout_rowWeight="1"/> <TextViewandroid:background="#ffffff"android:gravity="center"android:text="1"app:layout_columnWeight="1"app:layout_rowWeight="1"/><TextViewandroid:layout_margin="1dp"android:background="#ffffff"android:gravity="center"android:text="2"app:layout_columnWeight="1"app:layout_rowWeight="1"/><TextViewandroid:layout_margin="1dp"android:background="#ffffff"android:gravity="center"android:text="3"app:layout_columnWeight="1"app:layout_rowWeight="1"/><TextViewandroid:layout_margin="1dp"android:background="#f68904"android:gravity="center"android:text="="android:textColor="#ffffff"app:layout_columnWeight="1"app:layout_rowSpan="2"app:layout_rowWeight="1"/><TextViewandroid:layout_margin="1dp"android:background="#ffffff"android:gravity="center"android:text="%"app:layout_columnWeight="1"app:layout_rowWeight="1"/><TextViewandroid:layout_margin="1dp"android:background="#ffffff"android:gravity="center"android:text="0"app:layout_columnWeight="1"app:layout_rowWeight="1"/><TextViewandroid:layout_margin="1dp"android:background="#ffffff"android:gravity="center"android:text="."app:layout_columnWeight="1"app:layout_rowWeight="1"/></android.support.v7.widget.GridLayout>效果: 4.4.4模拟器五、动态加载1.xml引⽤GridLayout<?xml version="1.0" encoding="utf-8"?><android.support.v7.widget.GridLayoutxmlns:android="/apk/res/android" xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:id="@+id/grid_layout"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#ece7e7"app:orientation="horizontal"app:useDefaultMargins="false"app:alignmentMode="alignBounds"tools:context="com.strivestay.gridlayoutdemo.MainActivity"> </android.support.v7.widget.GridLayout>2.动态添加package com.strivestay.gridlayoutdemo;import android.graphics.Color;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.GridLayout;import android.view.Gravity;import android.widget.TextView;/*** GridLayout⽰例* @author StriveStay* @date 2018/3/27*/public class MainActivity extends AppCompatActivity {private String[] mStrings = {"0","AC","退格","/","*","7","8","9","—","4","5","6","+","1","2","3","=","%","0","."}; @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// xml布局// setContentView(yout.activity_main);// 动态添加setContentView(yout.activity_main2);GridLayout gridLayout = (GridLayout) findViewById(R.id.grid_layout);// 6⾏ 4列gridLayout.setColumnCount(4);gridLayout.setRowCount(6);for (int i = 0; i < mStrings.length; i++) {TextView textView = new TextView(this);youtParams params = new youtParams();params.width =0;params.height =0;if(i == 0){// 设置⾏列下标,所占⾏列,⽐重// 对应: layout_row , layout_rowSpan , layout_rowWeight// 如下代表: item坐标(0,0),占 1 ⾏,⽐重为 3 ;占 4 列,⽐重为 1params.rowSpec = GridLayout.spec(0,1,3f);params.columnSpec = GridLayout.spec(0,4,1f);textView.setGravity(Gravity.BOTTOM|Gravity.RIGHT);}else{// 设置⾏列下标,和⽐重params.rowSpec = GridLayout.spec((i+3)/4,1f);params.columnSpec = GridLayout.spec((i+3)%4,1f);// 背景textView.setBackgroundColor(Color.WHITE);// 字体颜⾊if("AC".equals(mStrings[i])){textView.setTextColor(Color.parseColor("#f68904"));}if("=".equals(mStrings[i])){textView.setBackgroundColor(Color.parseColor("#f68904"));textView.setTextColor(Color.WHITE);params.rowSpec = GridLayout.spec((i+3)/4,2,1f);}// 居中显⽰textView.setGravity(Gravity.CENTER);// 设置边距params.setMargins(2,2,2,2);}// 设置⽂字textView.setText(mStrings[i]);// 添加itemgridLayout.addView(textView,params);}}}效果和⽤xml中直接布局⼀样:注意:GridLayout.spec(); 这个⽅法是⼀个重点,需要好好看⼀下,⽽且由于它有⼏个重载⽅法,使⽤时也要注意。

布局属性

布局属性

Android功能强大,界面华丽,但是众多的布局属性就害苦了开发者,下面这篇文章结合了网上不少资料,花费本人一个下午搞出来的,希望对其他人有用。

第一类:属性值为true或falseandroid:layout_centerHrizontal 水平居中android:layout_centerVertical 垂直居中android:layout_centerInparent 相对于父元素完全居中android:layout_alignParentBottom 贴紧父元素的下边缘android:layout_alignParentLeft 贴紧父元素的左边缘android:layout_alignParentRight 贴紧父元素的右边缘android:layout_alignParentTop 贴紧父元素的上边缘android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物第二类:属性值必须为id的引用名“@id/id-name”android:layout_below 在某元素的下方android:layout_above 在某元素的的上方android:layout_toLeftOf 在某元素的左边android:layout_toRightOf 在某元素的右边android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐第三类:属性值为具体的像素值,如30dip,40pxandroid:layout_marginBottom 离某元素底边缘的距离android:layout_marginLeft 离某元素左边缘的距离android:layout_marginRight 离某元素右边缘的距离android:layout_marginTop 离某元素上边缘的距离EditText的android:hint 设置EditText为空时输入框内的提示信息。

如何使用AndroidStudio进行布局设计

如何使用AndroidStudio进行布局设计

如何使用AndroidStudio进行布局设计一、介绍AndroidStudioAndroidStudio是谷歌官方推出的一款专业的Android开发工具,被广大开发者广泛应用于Android应用程序开发。

AndroidStudio集成了丰富的功能和工具,其中包括布局设计工具,可帮助开发者设计灵活且具有吸引力的界面布局。

二、AndroidStudio布局设计工具的主要组成部分1.布局编辑器AndroidStudio的布局编辑器提供了直观且灵活的界面设计界面,开发者可以通过拖拽和放置控件来设计界面布局。

在布局编辑器中,可以选择常见的布局类型,例如线性布局、相对布局等,以及不同的组件,例如按钮、文本框等。

在布局编辑器中,开发者可以添加、删除和编辑布局中的各个组件,以实现所需的布局效果。

2.属性编辑器属性编辑器是AndroidStudio中用于编辑控件属性的工具。

通过属性编辑器,开发者可以为各个控件设置属性,例如大小、位置、颜色等。

属性编辑器提供了详细的属性列表,并且支持直接编辑XML文件,开发者可以根据自己的需求选择合适的方式进行属性编辑。

3.预览窗口预览窗口是布局编辑器的一个重要组成部分,开发者可以在预览窗口中实时看到布局的效果。

预览窗口与布局编辑器紧密结合,开发者可以在编辑器中进行布局设计,然后立即在预览窗口中查看实际效果。

这个功能对于快速调整布局效果非常有帮助。

4.约束布局编辑器约束布局是AndroidStudio中的一种新的布局类型,可以更灵活地设计界面。

约束布局编辑器提供了强大的功能,可以通过简单的拖拽和约束设置,轻松实现复杂的布局效果。

约束布局编辑器同时支持水平和垂直约束,以及边距和对齐等属性的设置,使得开发者可以实现更灵活和美观的布局设计。

三、使用AndroidStudio进行布局设计的步骤1.创建新项目在AndroidStudio中,首先需要创建一个新的Android项目。

可以选择EmptyActivity或者其他模板来创建一个新的项目。

Android核心技术与实例详解—Android布局管理器

Android核心技术与实例详解—Android布局管理器

实战Android编程——手把手教你做出商用软件34第3章Android布局管理器本章要介绍的内容为Android平台下的布局管理器。

Android中的布局包括线性布局、表格布局、相对布局、帧布局和绝对布局。

下面将分别对每个布局管理器进行详细的介绍。

3.1 控件类概述3.1.1 View类简介在介绍Android的布局管理器之前,有必要让读者了解Android平台下的控件类。

首先要了解的是View类,该类为所有可视化控件的基类,主要提供了控件绘制和事件处理的方法。

创建用户界面所使用的控件都继承自View,如TextView、Button、CheckBox等。

关于View及其子类的相关属性,既可以在布局XML文件中进行设置,也可以通过成员方法在代码中动态设置。

View类常用的属性及其对应方法如表3-1所示。

表3-1 View类常用属性及对应方法说明属性名称对应方法描述android:background setBackgroundResource(int) 设置背景android:clickable setClickable(boolean) 设置View是否响应点击事件android:visibility setVisibility(int) 控制View的可见性android:focusable setFocusable(boolean) 控制View是否可以获取焦点android:id setId(int) 为View设置标识符,可通过findViewById方法获取android:longClickable setLongClickable(boolean) 设置View是否响应长点击事件android:soundEffectsEnabled setSoundEffectsEnabled(boolean) 设置当View触发点击等事件时是否播放音效android:saveEnabled setSaveEnabled(boolean) 如果未作设置,当View被冻结时将不会保存其状态android:nextFocusDown setNextFocusDownId(int)定义当向下搜索时应该获取焦点的View,如果该View 不存在或不可见,则会抛出RuntimeException异常android:nextFocusLeft setNextFocusLeftId(int) 定义当向左搜索时应该获取焦点的Viewandroid:nextFocusRight setNextFocusRightId(int) 定义当向右搜索时应该获取焦点的View续表属性名称对应方法描述android:nextFocusUp setNextFocusUpId(int) 定义当向上搜索时应该获取焦点的View,如果该View第3章 Android 布局管理器35不存在或不可见,则会抛出RuntimeException 异常说明:任何继承自View 的子类都将拥有View 类的以上属性及对应方法。

Android五大布局详解——TableLayout(表格布局)

Android五大布局详解——TableLayout(表格布局)

Android五⼤布局详解——TableLayout(表格布局)TableLayout前⾯所学的LinearLayout和RelativeLayout两⼤布局已经完全适⽤于各种开发条件下,其他的布局仅供参考学习,毕竟知识就是⼒量,以后的开发过程中万⼀遇到也能游刃有余。

表格布局允许我们使⽤表格的⽅式来排列组件,就是⾏与列的⽅式。

简单描述1.直接往TableLayout中添加组件,这个组件占满⼀⾏。

<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="TableLayout"/></TableLayout>效果如图:2.如果想要⼀⾏上有多个组件,就要添加⼀个TableRow的容器。

<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="/apk/res/android" android:layout_width="match_parent"android:layout_height="match_parent"><TableRow><Buttonandroid:id="@+id/button_1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="1"/><Buttonandroid:id="@+id/button_2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="2"/><Buttonandroid:id="@+id/button_3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="3"/><Buttonandroid:id="@+id/button_4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="4"/></TableRow></TableLayout>效果如图:3.tablerow中的组件个数就决定了该⾏有多少列。

Android 布局属性大全

Android 布局属性大全

RelativeLayout/view/2e39724333687e21af45a97e.html?from=related&hasrec=1 /view/d108da2fe2bd960590c677e2.html/view/53e395f8770bf78a652954ce.html?from=related&hasrec=1第一类:属性值为true可falseandroid:layout_centerHrizontal 水平居中android:layout_centerVertical 垂直居中android:layout_centerInparent 相对于父元素完全居中android:layout_alignParentBottom 贴紧父元素的下边缘android:layout_alignParentLeft 贴紧父元素的左边缘android:layout_alignParentRight 贴紧父元素的右边缘android:layout_alignParentTop 贴紧父元素的上边缘android:layout_alignWithParentlfMissing如果找不到对应的兄弟元素找不到,就以父元素做参照物。

第二类:属性值必须为id的引用名android:layout_below 在某元素的下方android:layout_above 在某元素的上方android:layout_toLeftOf 在某元素的左边Android:layout_toRightOf 在某元素的右边android:layout_alignTop 本元素的上边缘和某元素的上边缘对齐android:layout_alignLeft 本元素的左边缘和某元素的左边缘对齐android:layout_alignBottom 本元素的下边缘和某元素下边缘对齐android:layout_alignRight 本元素的右边缘和某元素右边缘对齐第三类:属性值为具体的像素值班,如30dipandroid:layout_marginBottom 离某元素底边缘的距离Android:layout_marginLeft 离某元素左边缘的的距离Android:layout_marginRight 离某元素的右边缘的距离Android:layout_marginTop 离某元素上边缘的距离android:hint 设置EditText为空时输入的提示信息android:gravity 对该view内容的限定:靠上下左右android:layout_gravity="right" 用来设置该Container(组件)的靠左靠右android:text 指定的控件当中显示的文字尽量使用string.xml文件当中的字符串Android:textSize 文字大小Android:width 控件宽度Android:height 控件高度Android:layout_width 指定Container组件的宽度Android:layout_height 指定Container组件的高度View 按比例划分空间Android:Padding* 内边距Android:singleLine 为真时,内容在同一行中进行显示Android:scaleType: 控制图片如何resized/moved来匹配ImageView的sizeImageView.ScaleType/android.scaleType值的意义区别:CENTER/center按图片的原来size居中显示,当图片长宽超过View的长宽时,截取图片的居中部分显示CENTER_CROP/centerCrop 按比例扩大图片的size居中显示,使得图片的长宽等于View的长宽CENTER_INSIDE/centerinside将图片的内容完整居中显示,通过缩小比例或原的size使得图片长宽等于或小于View的长宽FIT_CENTER/fitCenter 把图片按比例扩大/缩小到VIEW的宽度,居中显示FIT_END/fitEnd 把图片按比例扩大/缩小到VIEW的宽度,居中在VIEW的下部位置FIT_START/fitStart 把图片按比例扩大/缩小到VIEW的宽度,居中在VIEW的上部位置FIT_XY/fitXY 把图片不按比例扩大/缩小到VIEW的大小显示MATRIX/matrix 用矩阵来绘制、动态缩小放大图片来显示。

Android系统常用布局介绍

Android系统常用布局介绍

Android系统常用布局介绍Android中的布局包括线性布局,表格布局,相对布局,帧布局,绝对布局。

下面分别对每个布局进行一个介绍。

在介绍android的布局管理器之前,有必要了解android平台下的控件类。

首先要了解的是View类,该类为所有可视化控件的基类,主要提供了控件绘制和事件处理的方法。

创建用户界面所使用的控件都继承自View,如TextView,Button,CheckBox等。

补充:另外一个需要了解的是ViewGroup类,它也是View类的子类,但是可以充当其他控件的容器。

ViewGroup的子控件既可以是普通的View,也可以是ViewGroup。

Android中的一些高级控件如Gally,GirdView等都继承自ViewGroup。

一:线性布局:LinearLayout类简介线性布局是最简单的布局之一,它提供了控件水平或者垂直排列的模型。

同时,使用此布局时可以通过设置控件的weight参数控制各个控件在容器中的相对大小。

LinearLayout布局的属性既可以在布局文件(XML)中设置,也可以通过成员方法进行设置。

案例:1.在布局管理器中实现布局:在eclipse中新建一个项目。

首先打开项目文件夹下res/values目录下的string.xml,写入一下内容:<?xml version=”1.0”encoding=”utf-8”?><resources><string name=”app_name”>LinearExample</string><string name=”button”>按钮</string><string name=”add”>添加</string></resources>说明:在string.xml中主要声明了程序中要用到的字符串资源,这样将所有字符串资源统一管理有助于提高程序的可读性及可维护性。

ANDROID:控件属性(很全)

ANDROID:控件属性(很全)

控件属性:android属性Android功能强大,界面华丽,但是众多的布局属性就害苦了开发者,下面这篇文章结合了网上不少资料,第一类:属性值为true或falseandroid:layout_centerHrizontal 水平居中android:layout_centerVertical 垂直居中android:layout_centerInparent 相对于父元素完全居中android:layout_alignParentBottom 贴紧父元素的下边缘android:layout_alignParentLeft 贴紧父元素的左边缘android:layout_alignParentRight 贴紧父元素的右边缘android:layout_alignParentTop 贴紧父元素的上边缘android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物第二类:属性值必须为id的引用名“@id/id-name”android:layout_below 在某元素的下方android:layout_above 在某元素的的上方android:layout_toLeftOf 在某元素的左边android:layout_toRightOf 在某元素的右边android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐第三类:属性值为具体的像素值,如30dip,40pxandroid:layout_marginBottom 离某元素底边缘的距离android:layout_marginLeft 离某元素左边缘的距离android:layout_marginRight 离某元素右边缘的距离android:layout_marginTop 离某元素上边缘的距离EditText的android:hint 设置EditText为空时输入框内的提示信息。

线性布局的名词解释

线性布局的名词解释

线性布局的名词解释线性布局(Linear Layout),是一种在软件界面设计中常用的布局方式。

它是Android开发中最基础和常见的布局之一,用于控制界面元素的排列方式。

通过线性布局,可以在界面中实现水平或垂直方向上的元素排列,从而构建出多样化且直观的用户界面。

一、线性布局的概述线性布局是指将界面元素按照水平或垂直的方向进行排列的布局方式。

它根据元素在布局中出现的顺序,依次按照水平或垂直的方向排列。

线性布局可以嵌套使用,形成复杂的界面结构。

在Android开发中,线性布局是最常见的一种布局方式,广泛应用于各类APP的界面设计。

二、线性布局的特点1. 排列方式灵活:线性布局可以按水平或垂直方向排列界面元素,从而适应不同的设计需求。

2. 易于理解和使用:线性布局的使用相对简单,开发人员只需要选择好方向并按照顺序添加元素即可。

3. 占用空间均匀:线性布局可以根据元素自动分配空间,使得各个元素在界面上等宽或等高排列。

4. 内部元素大小可控:线性布局中的元素可以通过权重属性来设置大小比例,实现不同元素的灵活布局。

三、线性布局的属性介绍1. layout_width和layout_height:用于设置布局的宽度和高度。

可以指定具体数值,也可以使用match_parent和wrap_content进行自适应。

2. orientation:用于指定布局的方向,可以设置为horizontal(水平方向)或vertical(垂直方向)。

3. layout_gravity:用于设置布局内部元素的对齐方式,可以是top、bottom、left、right、center等。

4. weight:用于控制布局内部元素的大小比例。

通过设置权重值,可以使元素按比例分配空间。

四、线性布局的嵌套使用线性布局可以进行嵌套使用,形成更加复杂的布局结构。

通过合理的嵌套和设置属性,可以实现各种不同的布局效果。

例如,可以嵌套两个水平方向的线性布局,实现表格状的布局结构;也可以嵌套一个垂直方向的线性布局,内部再嵌套多个水平方向的线性布局,实现复杂的界面设计。

Androidstudio——LinearLayout(线性布局)

Androidstudio——LinearLayout(线性布局)

Androidstudio——LinearLayout(线性布局)Android中有六⼤布局,分别是:LinearLayout(线性布局)RelativeLayout(相对布局)TableLayout(表格布局)FrameLayout(帧布局)AbsoluteLayout(绝对布局)GridLayout(⽹格布局)线性布局。

这个布局简单的说,就是所有控件都依次排序,谁也不会覆盖谁。

线性布局需要定义⼀个⽅向,横向(Android:orientation="horizontal")或纵向(android:orientation="vertical")。

也就是说,控件要么就并排横向的排列,要么就纵向的笔直排列。

⽽Android的开发常⽤到的有LinearLayout和RelativeLayout。

我们屏幕适配的使⽤⽤的⽐较多的就是LinearLayout的weight(权重属性)。

下⾯的关于LinearLayout的⼀些知识。

<LinearLayout +代码> </LinearLayout>⽔平布局android:background="#ef0000"背景颜⾊android:layout_weight="1"块所占的权重android:gravity="center_vertical">对齐⽅式android:id="@+id/LinearLayout1" :为该资源控件设置⼀个资源 id,在 Java 代码中可以通过 findViewById(id) 找到该控件android:layout_width="match_parent":布局的宽度设置为填满⽗容器android:layout_height="match_parent":布局的⾼度设置为填满⽗容器android:orientation="horizontal":布局中控件的排列⽅式设置为⽔平⽅向android:layout_height="fill_parent:布局⾼度设置为充满⽗容器android:layout_margin:外边距,布局或控件距离外部元素的边距android:layout_padding:内边距,布局或控件距离内部元素的边距tools:context=".MainActivity":声明当前布局提供给 activity 使⽤android:layout_weight:设置权重,按⽐例划分⽔平⽅向,将涉及到的 View 的 android:layout_width 属性设置为 0dp,然后使⽤ android:layout_weight 属性设置⽐例即可,如上所⽰,第⼆个 LinearLayout 是第⼀个的两倍。

关于界面布局及常用属性

关于界面布局及常用属性

关于界面布局LinearLayout:LinearLayout按照垂直或者水平的顺序依次排列子元素,每一个子元素都位于前一个元素之后。

如果是垂直排列,那么将是一个N行单列的结构,每一行只会有一个元素,而不论这个元素的宽度为多少;如果是水平排列,那么将是一个单行N列的结构。

如果搭建两行两列的结构,通常的方式是先垂直排列两个元素,每一个元素里再包含一个LinearLayout进行水平排列。

LinearLayout中的子元素属性android:layout_weight生效,它用于描述该子元素在剩余空间中占有的大小比例。

加入一行只有一个文本框,那么它的默认值就为0,如果一行中有两个等长的文本框,那么他们的android:layout_weight值可以是同为1。

如果一行中有两个不等长的文本框,那么他们的android:layout_weight值分别为1和2,那么第一个文本框将占据剩余空间的三分之二,第二个文本框将占据剩余空间中的三分之一。

android:layout_weight遵循数值越小,重要度越高的原则。

显示效果如下:FrameLayout:FrameLayout(框架布局)是五大布局中最简单的一个布局,在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。

显示效果如下,第一个TextView被第二个TextView完全遮挡,第三个TextView遮挡了第二个TextView的部分位置。

AbsoluteLayout:AbsoluteLayout(绝对布局)是绝对位置布局。

在此布局中的子元素的android:layout_x和android:layout_y属性将生效,用于描述该子元素的坐标位置。

屏幕左上角为坐标原点(0,0),第一个0代表横坐标,向右移动此值增大,第二个0代表纵坐标,向下移动,此值增大。

Layout常用属性介绍

Layout常用属性介绍

Layout常⽤属性介绍在Android中,共有五种布局⽅式,分别是:FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。

Layout公共属性第⼀类:属性值为true或falseandroid:layout_centerHorizontal ⽔平居中android:layout_centerVertical 垂直居中android:layout_centerInparent 相对于⽗元素完全居中android:layout_alignParentBottom 贴紧⽗元素的下边缘android:layout_alignParentLeft 贴紧⽗元素的左边缘android:layout_alignParentRight 贴紧⽗元素的右边缘android:layout_alignParentTop 贴紧⽗元素的上边缘android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以⽗元素做参照物第⼆类:属性值必须为id的引⽤名“@id/id-name”android:layout_below 在某元素的下⽅android:layout_above 在某元素的的上⽅android:layout_toLeftOf 在某元素的左边android:layout_toRightOf 在某元素的右边android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐第三类:属性值为具体的像素值,如30dip,40pxandroid:layout_marginBottom 离某元素底边缘的距离android:layout_marginLeft 离某元素左边缘的距离android:layout_marginRight 离某元素右边缘的距离:layout_marginTop 离某元素上边缘的距离--------------------------------------------------------------------------------------------------FrameLayout:这个布局可以看成是墙脚堆东西,有⼀个四⽅的矩形的左上⾓墙脚,我们放了第⼀个东西,要再放⼀个,那就在放在原来放的位置的上⾯,这样依次的放,会盖住原来的东西。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

RelativeLayout用到的一些重要的属性:第一类:属性值为true或falseandroid:layout_centerHrizontal 水平居中android:layout_centerVertical 垂直居中android:layout_centerInparent 相对于父元素完全居中android:layout_alignParentBottom 贴紧父元素的下边缘android:layout_alignParentLeft 贴紧父元素的左边缘android:layout_alignParentRight 贴紧父元素的右边缘android:layout_alignParentTop 贴紧父元素的上边缘android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物第二类:属性值必须为id的引用名“@id/id-name”android:layout_below 在某元素的下方android:layout_above 在某元素的的上方android:layout_toLeftOf 在某元素的左边android:layout_toRightOf 在某元素的右边android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐第三类:属性值为具体的像素值,如30dip,40pxandroid:layout_marginBottom 离某元素底边缘的距离android:layout_marginLeft 离某元素左边缘的距离android:layout_marginRight 离某元素右边缘的距离android:layout_marginTop 离某元素上边缘的距离EditText的android:hint设置EditText为空时输入框内的提示信息。

android:gravityandroid:gravity属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.以button为例,android:gravity="right"则button上面的文字靠右android:layout_gravityandroid:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置.以button 为例,android:layout_gravity="right"则button靠右android:layout_alignParentRight使当前控件的右端和父控件的右端对齐。

这里属性值只能为true或false,默认false。

android:scaleType:android:scaleType是控制图片如何resized/moved来匹对ImageView的size。

ImageView.ScaleType / android:scaleType值的意义区别:CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽FIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示FIT_END / fitEnd 把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置FIT_START / fitStart 把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置FIT_XY / fitXY 把图片•不按比例 扩大/缩小到View的大小显示MATRIX / matrix 用矩阵来绘制,动态缩小放大图片来显示。

** 要注意一点,Drawable文件夹里面的图片命名是不能大写的。

1.Android RelativeLayout 属性// 相对于给定ID控件android:layout_above 将该控件的底部置于给定ID的控件之上;android:layout_below 将该控件的底部置于给定ID的控件之下;android:layout_toLeftOf 将该控件的右边缘与给定ID的控件左边缘对齐; android:layout_toRightOf 将该控件的左边缘与给定ID的控件右边缘对齐; android:layout_alignBaseline 将该控件的baseline与给定ID的baseline对齐; android:layout_alignTop 将该控件的顶部边缘与给定ID的顶部边缘对齐; android:layout_alignBottom 将该控件的底部边缘与给定ID的底部边缘对齐;android:layout_alignLeft 将该控件的左边缘与给定ID的左边缘对齐;android:layout_alignRight 将该控件的右边缘与给定ID的右边缘对齐;// 相对于父组件android:layout_alignParentTop 如果为true,将该控件的顶部与其父控件的顶部对齐;android:layout_alignParentBottom 如果为true,将该控件的底部与其父控件的底部对齐;android:layout_alignParentLeft 如果为true,将该控件的左部与其父控件的左部对齐;android:layout_alignParentRight 如果为true,将该控件的右部与其父控件的右部对齐;// 居中android:layout_centerHorizontal 如果为true,将该控件的置于水平居中;android:layout_centerVertical 如果为true,将该控件的置于垂直居中;android:layout_centerInParent 如果为true,将该控件的置于父控件的中央;// 指定移动像素android:layout_marginTop 上偏移的值;android:layout_marginBottom 下偏移的值;android:layout_marginLeft 左偏移的值;android:layout_marginRight 右偏移的值;example:android:layout_below = "@id/***"android:layout_alignBaseline = "@id/***"android:layout_alignParentTop = trueandroid:layout_marginLeft = “10px”2.一些常用的公共属性介绍1) layout_width -宽fill_parent: 宽度和父元素相同,wrap_content: 宽度随本身的内容所调整,或者指定px值来设置宽2) layout_height - 高fill_parent: 高度和父元素相同,wrap_content: 高度随本身的内容所调整,或者指定px值来设置高3) background -设置背景图4) padding -设置边距可以具体设置paddingBottom,paddingLeft,paddingRight,paddingTop来设定不同的px值5) id -该object的id号@+id/id1 代表添加新的id名为id1,@id/id1 代表引用id1的控件6) layout_weight -重要度个人理解为显示的优先级。

默认为0(最高),数值越大,优先级越低!参考下面的LinearLayout例子。

要让layout_weight生效,需要父层或父父层的相应layout_width/layout_height = "fill_parent",否则wrap_content会压缩到最小足够空间!7) layout_gravity- Container组件的对齐方式组件在layout里面的对齐方式。

8) gravity-文字在组件里的对齐方式例如设置button里面的文字在button中居中显示。

* 大多数属性是可以调用对应的函数来动态改变状态的,请查看SDK Doc。

2. Linear Layout 线形布局orientation -容器内元素的排列方式。

vertical: 子元素们垂直排列,horizontal:子元素们水平排列。

在代码里可通过setOrientation()进行动态改变,值分别为HORIZONTAL或者VERTICAL。

*在Linear Layout, 宽度/高度都是按着组件的次序逐个占用的!所以当某个组件设置"fill_parent",在没有设置Layout_weight的情况下,该组件会占用了余下的空间,那么在它后面的组件就会显示不出来。

如下图的EditText如果没有设置android:layout_weight="1",它下面的其他组件就看不见了!baselineAligned 一般情况下,这个属性默认为true,代表在同一方向的组件都基于第一个组件对齐。

所以可以看到下图的text1, button1, text2是在同一水平线的。

当不需要这效果时,可以设置为false。

3.android常用控件1,EditText主要函数:setText/getText设置/获取文本内容,setHint设置缺省显示内容;2,RadioGroup,RadioButtonRadioButton的isChecked()判断是否被选中获取选中RadioButon的ID:设置RadioGroup.setOnCheckedChangeListener方法public onCheckedChanged(RadioGroup group,int checkedId)//checkedId是选中RadioButton的ID3,CheckBoxisChecked()判断是否被选中setOnCheckedChangeListener方法监视选中状态改变情况4,Spinnera,显示数据1),硬编码加载通过setAdapter方法设置类型为ArrayAdapter (Context context, int textViewResId, String []objects)textViewResourceId:显示内容的ViewID默认设置为yout.simple_spinner_itemobjects:显示的内容2),从资源文件中加载ArrayAdapter.createFromResource (Context context, int textArrayResId, int textViewResId) //textArrayResId是资源ID返回ArrayAdapter<CharSequence>b,设置下拉列表的风格(可选)adapter.setDropDownViewResource(yout.simple_spinner_dropdo wn_item);c,监听选项选择变更事件setOnItemSelectedListener设置监听去Spinner.OnItemSelectedListener类须实现以下两个方法public void onItemSelected (AdapterView<?> parent, View view, int position, long id)//view 选中项实例,position选择项在adapter中的位置public void onNothingSelected(AdapterView<?> arg0)d,设置选中项Spinner.setSelection(position)//索引从0开始d,获取选中项getSelectedItemPosition ()getSelectedItem () //该值toString()则为选中内容的字符串getSelectedItemId ()getSelectedView ()5,AutoCompleteTextView1,setAdapter设置数据adapter2,设置输入多少个字符显示提示AutoCompleteTextView.setThreshold(int threshold)6,MultiAutoCompleteTextView (允许输入多值,多值之间会自动地用指定的分隔符分开)1,setAdapter设置数据adapter2,setTokenizer设置提示Tokenizer缺省的为new maTokenizer()以逗号分隔7,DatePicker,TimePickera,DatePicker1),设置初始显示日期init(int Year, int month, int day, newDatePicker.OnDateChangedListener(){public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth){}})2),获取设置值getYeah()/getMonth()/getDayOfMonth()b,TimePicker1),设置setCurrentHour (Integer currentHour) /setCurrentMinuter (Integer currentHour)2,setIs24HourView(Boolean)设置是否为24小时制显示3,监听设置改变setOnTimeChangedListenerc,获取系统当期时间和日期Calendar.getInstance()返回CalendarCalendar.get (int field) ---field 可以为Calendar.YEAR/ Calendar.MONTH/ Calendar.DAY_OF_MONTH/ Calendar.HOUR_OF_DAY/ Calendar.MINUTE8,ImageView/ImageButton主要方法setImageResource 设置显示图片setAlpha 设置Alphainvalidate 强制更新setScaleType( ScaleType st) 设置图片显示方式,st是一枚举setAdjustViewBounds 设置是否调整控件适应图片大小setBackgroundResource 设置背景9,ImageSwitcher(显示一系列的图片,但当前只显示一张图片)显示数据setFactory( ViewSwitcher.ViewFactory factory)设置要显示的数据,ViewFactory接口须实现方法public View makeView(){}负责提供当前显示的视图(ImageView),且View必须为新实例方法setImageResource设置当前显示的图片getCurrentView()返回当前显示的视图setInAnimation(Animation ani)设置视图装载入时的动画效果,AnimationUtils.loadAnimation(Context context, int id) 获取动画效果android.R.anim.XXsetOutAnimation(Animation ani)设置视图装载入时的动画效果10,Gallery(显示一系列的图片,提供拖动等特效)显示数据setAdapter(SpinnerAdapter adapter)设置数据适配器.数据适配器可以继承自BaseAdapter,该类public View getView(int position, View convertView, ViewGroup parent) 返回当前选择的视图(ImageView) 选项选中监听setOnItemSelectedListener11,GridView(表格显示一系列图片)显示数据setAdapter(ListAdapter adapter)设置数据适配器.数据适配器可以继承自BaseAdapter,该类public View getView(int position, View convertView, ViewGroup parent) 返回当前选择的视图(ImageView) 选项选中监听setOnItemSelectedListenergetSelectedView()返回当前选中的视图12,ScrollView13,ProgressBarsetIndeterminate 设置进度条是否自动运转setProgressStyle 设置显示风格.ProgressDialog.STYLE_HORIZONTAL/ProgressDialog.STYLE_SPINNERsetProgress 设置进度setMax 设置最大值getProgress()获取当前进度14,SeekBar方法setMax 设置最大值getProgress()获取当前值setProgress 设置值setIndeterminate监听器setOnSeekBarChangeListener其下有三个方法public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) //数值变更,arg1新值,是否Touchpublic void onStartTrackingTouch(SeekBar seekBar)//开始拖动public void onStopTrackingTouch(SeekBar seekBar) //结束拖动15,ListViewa,显示数据setAdapter(ListAdapter adapter)adapter可为new SimpleCursorAdapter/SimpleAdapter(Context context, int layout, Cursor c, String[] from, int[] to)layout 用来显示数据的模板.显示一列可用yout.simple_list_item_1 两列可用yout.simple_list_item_2多列则需要自己实现xml视图布局文件c 数据(可用ArrayList构造数据)from ':to 用来显示对应列的空件idb,动态增删数据adapter.notifyDataSetChanged() d,设置背景色setBackGroudRource。

相关文档
最新文档