Android中的View
2016-12-23 13:44
543 查看
Android 应用中的所有用户界面元素都是使用 View 和 ViewGroup 对象构建而成。View 对象用于在屏幕上绘制可供用户交互的内容。ViewGroup 对象用于储存其他 View(和 ViewGroup)对象,以便定义界面的布局。
(1)单位
px-像素
在任何屏幕上都表现为设定的值
dp/dip
设备独立像素,即屏幕密度,即单位英寸屏幕所包含的像素点
sp
缩放像素,主要用于字体大小设置
官方提供的屏幕密度占比
常用属性
(1)
gravity:设置父View上,表示内部元素对齐方式
layout_gravity:设置在子View上,表示该View相对于父View的对齐方式
例子:
(2)weight比例值
例子:
(3)
visibility 是否可见
例子
enabled 是否可用
clickable是否可点击
(4)
alpha透明度
minHeight/minWidth 最小高度/宽度
tag 对象
例子:
View响应事件的流程
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I am a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I am a Button" /> </LinearLayout>
(1)单位
px-像素
在任何屏幕上都表现为设定的值
dp/dip
设备独立像素,即屏幕密度,即单位英寸屏幕所包含的像素点
sp
缩放像素,主要用于字体大小设置
//以160作为基准,240密度的机器这个值就是240/160=1.5 float density =getResources().getDisplayMetrics().density; //对应120,160,240 int desityDpi =getResources().getDisplayMetrics().densityDpi;
官方提供的屏幕密度占比
常用属性
(1)
gravity:设置父View上,表示内部元素对齐方式
layout_gravity:设置在子View上,表示该View相对于父View的对齐方式
例子:
<LinearLayout android:background="#0f0" android:gravity="center_horizontal" android:layout_width="match_parent" android:layout_height="200dp"> <TextView android:layout_width="250dp" android:layout_height="100dp" android:background="#f00" android:gravity="end|bottom" android:paddingLeft="30dp" android:text="@string/iAmTextviewToo" android:textSize="20sp" /> </LinearLayout> <LinearLayout android:background="#0f0" android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="200dp"> <TextView android:layout_gravity="center_vertical" android:layout_width="250dp" android:layout_height="100dp" android:background="#f00" android:gravity="center" android:padding="30dp" android:text="@string/iAmTextviewToo" android:textSize="20sp" /> </LinearLayout>
(2)weight比例值
例子:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_weight="1" android:layout_width="match_parent" android:layout_height="0dp" android:background="#f00" android:textSize="30sp" android:gravity="center" android:text="@string/iAmTextviewToo" /> <TextView android:layout_weight="2" android:layout_width="match_parent" android:layout_height="0dp" android:background="#0f0" android:textSize="30sp" android:gravity="center" android:text="@string/iAmTextviewToo" /> <TextView android:layout_weight="3" android:layout_width="match_parent" android:layout_height="0dp" android:background="#00f" android:textSize="30sp" android:gravity="center" android:text="@string/iAmTextviewToo" /> </LinearLayout>
(3)
visibility 是否可见
例子
<TextView android:visibility="gone" android:layout_width="match_parent" android:layout_height="100dp" android:background="#f00" android:textSize="30sp" android:gravity="center" android:text="@string/iAmTextviewToo" /> <TextView android:visibility="invisible" android:layout_width="match_parent" android:layout_height="100dp" android:background="#00ff00" android:textSize="30sp" android:gravity="center" android:text="@string/iAmTextviewToo" /> <TextView android:layout_width="match_parent" android:layout_height="100dp" android:background="#00f" android:textSize="30sp" android:gravity="center" android:text="@string/iAmTextviewToo" />
enabled 是否可用
<TextView android:enabled="false" android:layout_width="match_parent" android:layout_height="100dp" android:background="#00f" android:textSize="30sp" android:gravity="center" android:text="@string/iAmTextviewToo" /> <TextView android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="100dp" android:background="#00f" android:textSize="30sp" android:gravity="center" android:text="@string/iAmTextviewToo" />
clickable是否可点击
<TextView android:clickable="false" android:layout_width="match_parent" android:layout_height="100dp" android:background="#00f" android:textSize="30sp" android:gravity="center" android:text="@string/iAmTextviewToo" /> <TextView android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="100dp" android:background="#00f" android:textSize="30sp" android:gravity="center" android:text="@string/iAmTextviewToo" />
(4)
alpha透明度
minHeight/minWidth 最小高度/宽度
tag 对象
例子:
<TextView android:alpha="0.7" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#00f" android:textSize="30sp" android:gravity="center" android:text="@string/iAmTextviewToo" /> <TextView android:minHeight="100dp" android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#00f" android:textSize="30sp" android:gravity="center" android:text="@string/iAmTextviewToo" /> <TextView android:tag="iamtag" android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="100dp" android:background="#00f" android:textSize="30sp" android:gravity="center" android:text="@string/iAmTextviewToo" />
View响应事件的流程
相关文章推荐
- View.setKeepScreenOn(true) 需要 "android.permission.WAKE_LOCK" 权限?
- Android中View如何切换Focus
- View android source code in eclipse
- android.webkit.WebView 使用 SINGLE_COLUMN layout algorithm 导致程序意外退出的解决办法
- Android View添加 Listener
- android.webkit.WebView 使用 SINGLE_COLUMN layout algorithm 导致程序意外退出的解决办法
- Android中级教程(一)之----手机页面的转换setContentView的应用
- Android基础教程(九)之自定义下拉菜单模式----Spinner与setDropDownViewResource的应用
- 申请 Android MapView 的apiKey流程
- View android source code in Eclipse
- Android LsitView的实现
- [转]Jollen 的 Android 教學,#5: 使用 View 的 XML 屬性
- View android source code in eclipse
- Android基础教程(一)之------更改与显示文字标签TextView标签的使用
- Android使用原生组件WebView加载网页和数据的方法
- OPhone/Android的学习(1)—初步知识,TextView,Button,Layout及事件响应
- ViewStub Used in Android Application
- Android中级教程(一)之----手机页面的转换setContentView的应用
- Jollen 的 Android 教学:WebView 体验与 findViewByID
- Android游戏开发使用View还是SurfaceView