Android布局属性详解之RelativeLayout

 

RelativeLayout用到的一些重要的属性:

 

第一类:属性值为true或false
android: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,40px
android:layout_marginBottom 离某元素底边缘的距离
android:layout_marginLeft 离某元素左边缘的距离
android:layout_marginRight 离某元素右边缘的距离
android:layout_marginTop 离某元素上边缘的距离


EditText的android:hint

设置EditText为空时输入框内的提示信息。

android:gravity 
android:gravity属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.以button为例,android:gravity="right"则button上面的文字靠右

android:layout_gravity
android: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 = true

android: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(最高)数值越大优先级越低参考下面的Linear      Layout例子。

要让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,RadioButton RadioButton的isChecked()判断是否被选中 获取选中RadioButon的ID:设置RadioGroup.setOnCheckedChangeListener方法

public onCheckedChanged(RadioGroup group,int checkedId)//checkedId是选中RadioButton的ID

3,CheckBox isChecked()判断是否被选中 setOnCheckedChangeListener方法监视选中状态改变情况

4,Spinner     a,显示数据

1),硬编码加载 通过setAdapter方法设置类型为ArrayAdapter (Context context, int textViewResId, String []objects)  

  textViewResourceId:显示内容的ViewID默认设置为R.layout.simple_spinner_item    objects:显示的内容

2),从资源文件中加载 

ArrayAdapter.createFromResource (Context context, int textArrayResId, int textViewResId) //textArrayResId是资源ID 返回ArrayAdapter<CharSequence>    

b,设置下拉列表的风格(可选) adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_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,AutoCompleteTextView

1,setAdapter设置数据adapter

2,设置输入多少个字符显示提示AutoCompleteTextView.setThreshold(int threshold)

6,MultiAutoCompleteTextView (允许输入多值,多值之间会自动地用指定的分隔符分开)

1,setAdapter设置数据adapter

2,setTokenizer设置提示Tokenizer缺省的为new MultiAutoCompleteTextView.CommaTokenizer()以逗号分隔 

7,DatePicker,TimePicker

a,DatePicker

1),设置初始显示日期init(int Year, int month, int day, new DatePicker.OnDateChangedListener(){     public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth){}    })

2),获取设置值 getYeah()/getMonth()/getDayOfMonth() b,TimePicker

1),设置setCurrentHour (Integer currentHour) /setCurrentMinuter (Integer currentHour)

 2,setIs24HourView(Boolean)设置是否为24小时制显示

3,监听设置改变setOnTimeChangedListener

c,获取系统当期时间和日期 Calendar.getInstance()返回Calendar Calendar.get (int field) ---field 可以为Calendar.YEAR/ Calendar.MONTH/ Calendar.DAY_OF_MONTH/ Calendar.HOUR_OF_DAY/ Calendar.MINUTE

8,ImageView/ImageButton 主要方法 setImageResource 设置显示图片 setAlpha 设置Alpha invalidate 强制更新

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.XX setOutAnimation(Animation ani)设置视图装载入时的动画效果

10,Gallery(显示一系列的图片,提供拖动等特效)      显示数据 setAdapter(SpinnerAdapter adapter)设置数据适配器.  

 数据适配器可以继承自BaseAdapter,该类 public View getView(int position, View convertView, ViewGroup parent) 返回当前选择的视图(ImageView)    

 选项选中监听setOnItemSelectedListener

11,GridView(表格显示一系列图片)      

显示数据 setAdapter(ListAdapter adapter)设置数据适配器.  

 数据适配器可以继承自BaseAdapter,该类 public View getView(int position, View convertView, ViewGroup parent) 返回当前选择的视图(ImageView)    

 选项选中监听setOnItemSelectedListener  

   getSelectedView()返回当前选中的视图

12,ScrollView

13,ProgressBar setIndeterminate 设置进度条是否自动运转

   setProgressStyle 设置显示风格.ProgressDialog.STYLE_HORIZONTAL/ProgressDialog.STYLE_SPINNER 

 

setProgress 设置进度

setMax 设置最大值

getProgress()获取当前进度

14,SeekBar 方法

setMax 设置最大值

getProgress()获取当前值

setProgress 设置值

setIndeterminate 监听器

setOnSeekBarChangeListener其下有三个方法  

 public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) //数值变更,arg1新值,是否Touch  

 public void onStartTrackingTouch(SeekBar seekBar)//开始拖动  

 public void onStopTrackingTouch(SeekBar seekBar) //结束拖动

15,ListView    

  a,显示数据setAdapter(ListAdapter adapter)      

 adapter可为new SimpleCursorAdapter/SimpleAdapter(Context context, int layout, Cursor c, String[] from, int[] to)    

   layout 用来显示数据的模板.显示一列可用android.R.layout.simple_list_item_1 两列可用android.R.layout.simple_list_item_2            

   多列则需要自己实现xml视图布局文件    

   c   数据(可用ArrayList构造数据)    

   from ':        to 用来显示对应列的空件id      

b,动态增删数据 

  adapter.notifyDataSetChanged()    

  d,设置背景色         setBackGroudRource  

转载于:https://www.cnblogs.com/zhangxin1989/archive/2013/03/17/2964832.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402923.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

el-badge标记;el-tabs配合el-badge提示数字

标签选项卡配个标记数字提示 注意&#xff1a;el-tabs可以通过具名 slot 来实现选项卡的内容 <template><div><el-tabs v-model"tabValue"><el-tab-pane label"全部" name"1"></el-tab-pane><el-tab-pane lab…

[DP之计数DP]

其实说实在 我在写这篇博客的时候 才刚刚草了一道这样类型的题 之前几乎没有接触过 接触过也是平时比赛的 没有系统的做过 可以说0基础 我所理解的计数dp就是想办法去达到它要的目的 而且一定要非常劲非常快 都是一个很小的数然后有很多种接下来的方案使得这个数一下子变很大 计…

C++程序设计(第2版)课后习题答案--第11章

11.9 定义分数类Rational...... View Code 1 #include<iostream.h>2 #include<stdlib.h>3 class Rational{4 private:5 int fm,fz;6 int getZdgys(int a,int b);7 public:8 Rational(){9 fm1;fz0; 10 } 11 Rational(int a,int b); 1…

el-table设置动态高度:height;el-table设置最大高度max-heigh

<template><div><!-- 表格 height绑定tHeight--><el-tableref"singleTable":data"tableData":height"tHeight":max-height"maxHeight"><el-table-columnprop"date"label"日期"width&q…

C#控制台程序中处理2个关闭事件的代码实例

From: http://www.cnblogs.com/lvxiangjack/p/5363627.html 我们开发的控制台应用&#xff0c;在运行阶段很有可能被用户CtrlC终止或是被用户直接关闭。如果我们不希望用户通过CtrlC终止我们的程序&#xff0c;就需要对CtrlC或关闭事件作处理。 处理方法 在.net平台下Console类…

字典表左右选择

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"><head><title>管理中心 - 添加新配送点 &l…

Oracle内部错误:ORA-07445[kcflfi()+466] [INT_DIVIDE_BY_ZERO]一例

一套Windows上的11.2.0.1单实例数据库在database open阶段出现了ORA-07445:core dump [kcflfi()466] [INT_DIVIDE_BY_ZERO] [] [PC:0x500282E] [] []内部错误&#xff0c;具体的出错日志如下: LOG CONTENTALERT.LOGStarting ORACLE instance (normal) LICENSE_MAX_SESSION 0 L…

提交本地项目到github

要托管到github&#xff0c;那你就应该要有一个属于你自己的github帐号&#xff0c;所以你应该先到github.com注册 打开浏览器 在地址栏输入地址&#xff1a;github.com 填写用户名、邮箱、密码 点击Sign up即可简单地注册 2完成注册&#xff0c;进入github平台&#xff0c; 点…

一个能自动搜索源文件并自动推导的Makefile

From: http://blog.csdn.net/yuliying/article/details/49635485 这份makefile可以将当前makefile所在文件夹以及所有子文件夹中的cpp文件打包成静态库和动态库. 稍作修改目标也可以用来编译为可执行文件。 自动生成所有依赖关系&#xff0c;修改任何文件都可以触发重新编译相应…

(转)android WebView loadData不能解析(找不到网页)

public void loadData (String data, String mimeType, String encoding) loadData() 中的html data中不能包含#, %, \, ?四中特殊字符&#xff0c;出现这种字符就会出现解析错误&#xff0c;显示找不到网页还有部分html代码。因为css中经常用#, %等字符&#xff0c;所以大部…

C++11 std::bind std::function 高级用法

From: http://blog.csdn.net/eclipser1987/article/details/24406203 从最基础的了解&#xff0c;std::bind和std::function [cpp] view plaincopy/* * File: main.cpp * Author: Vicky.H * Email: eclipser163.com */ #include <iostream> #include <fun…

fragment+viewpager+tablayou实现滑动切换页面

本文目标&#xff1a;实现滑动切换页面 首先&#xff0c;Tablayout控件就需要添加design library&#xff0c;在android studio中添加依赖 compile ‘com.android.support:design:23.2.1’ 或者直接&#xff1a;File-->Project structure-->app-->Dependencies中单击加…

php 的命名空间 看鸟哥后的随笔

我以前貌似真心没有想过php的命名空间&#xff0c;我每次写文件都会记得不让类名相重&#xff0c; 看完命名空间了这个&#xff0c;我发现可以解决我的一部分问题 1 MyLove.php2 namespace Zj;3 class Application{4 public function toMyLove(){5 echo Marx is…

vue页面截图;H5页面截图;vue项目中将特定网页内容生成图片(截图);html2canvas截图

功能&#xff1a; 1.兼容 PC 和 Mobile&#xff1b; 2.对指定的区域进行截取&#xff1b; 3.可以控制截图大小&#xff1b; 4.截图生成base64图片地址 一、安装插件 npm install html2canvas --save 或 yarn add html2canvas二、在.vue页面引入使用 import html2canvas fro…

CentOS6.8升级gcc到4.8.5总结

From&#xff1a; http://www.cjjjs.com/paper/czxt/2017222114137150.aspx [摘要] 操作系统是CentOS6.8的32位版本&#xff0c;yum自带的gcc版本为4.4.7&#xff0c;不支持C11特性。所以需要升级到4.8.5&#xff0c;至少要升级到4.8.1才完全支持C11。本文提供了自动安装脚本和…

JAVA设计模式之【单例模式】

任务管理器案例 1.单例类 package Singleton;/*** Created by Jim on 2016/9/28.*/ public class TaskManager {private static TaskManager tm null;private TaskManager() {System.out.println("创建任务管理器");}public void displayProcesses() {System.out.pr…

myeclipse快捷键

Ctrl1 快速修复CtrlD: 删除当前行 CtrlQ 定位到最后编辑的地方 CtrlL 定位在某行 CtrlO 快速显示 OutLine CtrlT 快速显示当前类的继承结构 CtrlW 关闭当前Editer CtrlK 快速定位到下一个 CtrlE 快速显示当前Editer的下拉列表CtrlJ 正向增量查找(按下CtrlJ后,你所输入的…

vue下载static文件

将文件放在static静态文件夹下即可&#xff0c;如果放在src统计的static不行&#xff0c;那就放在src下级的static里 downLoadFile () {var elemIF document.createElement("iframe")// elemIF.src ../../static/政策精选模板.xlsx 这样写路径不行elemIF.src sta…

centos7.2 安装poco

下载地址: https://pocoproject.org/releases/poco-1.7.8/poco-1.7.8p3-all.tar.gz 安装&#xff1a; #!/bin/sh# 安装依赖库 # yum install openssl-devel mysql-devel# 默认方式不支持mysql #./configure --everything --omitData/ODBC,Data/SQLitemake -s#make -s install具…

ASP 错误处理

<% Option Explicit------------- 错误处理&#xff1a; ------------- 1.需在每一行可能发生错误的代码上使用"On Error" 和 "If Err.Number <> 0 Then ..." 结构。 注意作用域&#xff01; 2.On Error语句: 启用或禁用错误处理程序* On Error G…