layout公共属性
layout_width 宽
layout_height 高
text 主题
hint 提示文本(限于文本类型的view)
inputType 输入的类型(限于文本类型的view)
style 样式
theme 主题
visibility 可见性(gone不可见且不占位置 | invisible不可以见但是占位置 | visible 可见)
background 背景
android:descendantFocusability="blocksDescendants" 设置子控件不能抢父控件焦点(各点各的)(一般抢焦点的有Button,ImageButton....)
singleLine="true" 设置是否只显示一行
lines 显示几行
android:fitsSystemWindows="true" 沉淀式状态栏
android:clickable="false" 是否可以点击
android:focusable="false" 是否可以得到焦点
android:rotation="多少度" 设置布局的角度
android:translationX="10px" 平移多少
android:minHeight="10dp" 设置最低高度
layout布局属性
- LinearLayout
//自己属性
gravity 里面空间的位置
layout_width 宽
layout_height 高
layout_orientation 方向(水平还是垂直)
android:weightSum="3" 设置总权重
android:paddingXXX 底部的内边距 Bottom底部、Left左边 、Right右边、Top顶部
--//布局子控件的属性
layout_weight 权重
gravity 对齐方式
vertical 垂直
horizontal 水平
- RelativeLayout 相对布局
RelativeLayout 相对布局
--//布局的属性
visibility 设置显示或者隐藏
layout_centerHorizontal 居中水平
layout_centerVertical 居中垂直
layout_centerInParent 在父布局内居中
--//布局里面控件的属性
'在(指定控件)的哪里
layout_above 在(指定控件)上面
layout_below 在(指定控件)下面
layout_toRightof 在(指定控件)右边
layout_toLeftof 在(指定控件)左边
'在父布局四个方向
layout_alignParentTop 排列在父布局的顶部
layout_alignParentBottom 排列在父布局的底部
layout_alignParentLeft 排列在父布局的左边
layout_alignParentRight 排列在父布局的右边
'调边距
layout_alignRight 与(已指定控件)对齐
layout_marginRight 距(已指定控件)右边多少距离(如果没有指定默认父布局)
layout_marginLeft 距(已指定控件)左边多少距离(如果没有指定默认父布局)
layout_marginTop 距(已指定控件)上边多少距离(如果没有指定默认父布局)
layout_marginBottom 距(已指定控件)下边多少距离(如果没有指定默认父布局)
'显示的行数
singleLine="true" 设置是否只显示一行
lines 显示几行
- FrameLayout 帧布局
layout_Gravity
TableLayout 表格布局
AbsoluteLayout 绝对布局
控件
- TextView
android:maxLines="2" 设置显示的行数
ellipsize("文本怎么怎么显示") {"marquee" 获取焦点的时候文字滚动|"end"超过后省略点
focusableInTouchMode="true" 触摸的时候获取焦点
drawableLeft() 文本的左边增加一个图片
android:drawablePadding 图片的边距
- VideoView ‘视频播放器
- EditText ‘文本输入
et_content.setFilters(new InputFilter[]{new InputFilter.LengthFilter(maxLength)}); //代码设置输入的字数
Button ‘按钮
ImageView ‘图片
android:scaleType="" 设置图片放置的适配类型
- CheckBox ‘单选
android:focusable="false" 不可以抢焦点
android:clickable="false" 不可以点击
android:button="@null" 不要小圆圈的图片
SeekBar ‘进度条 (max最大值)
RadioButton ‘RadioGroup的子单选框
android:button="@null" 不要小圆圈的图片
- Listview ‘可以滚动控件 (fastScrollEnabled是否可以快速滚动)
fastScrollEnabled 是否可以快速滚动
android:cacheColorHint="#fff" 设置缓冲的颜色
android:divider="@null" 设置分隔物的颜色 @null表示没有
android:dividerHeight="@null" 设置分隔物的高度
- GridView ‘可以滚动控件(与listview不同的地方是可以设置几列列数)
numColumns="2" 设置列数
- ProgressBar ‘进度控件
indeterminateDrawable="选择自定义的样式"
style="?android:attr/progressBarStyleHorizontal" 设置成有进度的
- RadioGroup ‘团体单选框
- ScrollView ‘可以滚动的布局
(1)下子布局里面加下面两行可以防止自动滑动
android:focusable="true"
android:focusableInTouchMode="true"
(2)隐藏滚动条
android:scrollbars="none"
- SlidingDrawer ‘抽屉控件
android:content="@+id/content" //内容
android:handle="@+id/handle" //把手
- ViewPager ‘图片滑动的控件(需要V4包,3.0的)
- DrawerLayout ‘侧边菜单布局,需要V4包
android:layout_gravity="start" 设置左边菜单
- RatingBar ‘小星星控件 compile ‘com.jakewharton:butterknife:8.0.0’
<RatingBar
android:id="@+id/rb_star"
style="@android:style/Widget.RatingBar"
android:layout_width="wrap_content"
android:layout_height="14dp"
android:layout_marginBottom="2dp"
android:layout_marginTop="2dp"
android:isIndicator="true"
android:progressTint="@android:color/black"
android:progressDrawable="@drawable/ratingbar_progress" />
- swipeRefreshLayout 5.0 ‘原生的下拉刷新
状态选择器
--// 状态选择器——selector ##
- 可以给View设置不同的背景(注意:默认的背景图片一定要放在最后面)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 按压时的背景图片-->
<item android:state_pressed="true" android:drawable="@drawable/dg_button_cancel_select"/>
<!-- 默认时的背景图片:一定要放在最后面-->
<item android:drawable="@drawable/dg_button_cancel_normal"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#ff0000" android:state_pressed="true"/>
<item android:color="#ff0000" android:state_focused="true"/>
<item android:color="#ff0000" android:state_checked="true"/>
<item android:color="#000000" />
</selector>
需要在res下创建一个color目录
* state_pressed:被按下的状态
* state_focused:获取到焦点的状态
* state_checked:被选中的状态
state_enabled: 激活的状态
动画插值器Interpolator
1.interpolator定义一个动画的变化率(the rate of change)。这使得基本的动画效果(alpha, scale, translate, rotate)得以加速,减速,重复等。
2.常用Interpolator
AccelerateDecelerateInterpolator============动画开始与结束的地方速率改变比较慢,在中间的时候加速。
AccelerateInterpolator===================动画开始的地方速率改变比较慢,然后开始加速。
AnticipateInterpolator ==================开始的时候向后然后向前甩。
AnticipateOvershootInterpolator=============开始的时候向后然后向前甩一定值后返回最后的值。
BounceInterpolator=====================动画结束的时候弹起。
CycleInterpolator======================动画循环播放特定的次数,速率改变沿着正弦曲线。
DecelerateInterpolator===================在动画开始的地方快然后慢。
LinearInterpolator======================以常量速率改变。
OvershootInterpolator====================向前甩一定值后再回到原来位置。
PathInterpolator========================新增的,就是可以定义路径坐标,然后可以按照路径坐标来跑动;注意其坐标并不是 XY,而是单方向,也就是我可以从0~1,然后弹回0.5 然后又弹到0.7 有到0.3,直到最后时间结束。
页面滑动的xml动画资源
****************************************************************************************************************************
(1)资源id写在res/anim目录里面
(2)根节点为translate
(3)在Activity里面调用方法overridePendingTransition(开始动画的资源id,和退出动画的资源id); 设置开始动画和退出动画
xml资源实例
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="300" //持续时间
android:fromXDelta="100%p" //起始点x坐标
android:fromYDelta="0" //起始点y坐标
android:toXDelta="0" //结束点x坐标
android:toYDelta="0" > //结束点y坐标
</translate>
rotate 旋转动画
<?xml rotate="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0" //开始角度
android:toDegrees="360" //目标角度
android:pivoX="50%" //相对自己参照物X
android:pivoY="50%" //相对自己参照物Y
>
//可以嵌套shape
</rotate>