02_Android应用界面编程_01_视图(View)组件
来源:互联网 发布:plm软件占有率 编辑:程序博客网 时间:2024/05/18 18:04
Android绝大部分UI组件都放在android.widget和android.view包及其子包,所有的UI组件都继承了View类,ViewGroup则用于其他组件的容器。
XML属性
相关方法
说明
android:alpha setAlpha(float) 设置该组件的透明度 android:background setBackgroundResource(int) 设置该组件的背景颜色 android:clickable setClickable(boolean) 设置该组件是否可以激发单击事件 android:contentDescription setContentDescription(CharSequence) 设置该组件的主要描述信息 android:drawingCacheQuality setDrawingCacheQuality(iint) 设置该组件所使用的绘制缓存的质量 android:fadeScrollbars setScrollbarFadingEnabled(boolean) 当不使用该组件的滚动条时,是否淡出显示滚动条 android:fadingEdge setVerticalFadingEdgeEnabled(boolean) 设置滚动该组件时组件边界是否使用淡出效果 android:fadingEdgeLength getVerticalFadingEdgeLength() 设置淡出边界的长度 android:focusable setFocusable(boolean) 设置组件是否可以得到焦点 android:focusableInTouchMode setFocusableInTouchMode(boolean) 设置该组件在触摸模式下是否可以得到焦点 android:id setId(int) 设置该组件的唯一标识。Java代码中可以通过findViewById来获取它 android:isScrollContainer setScrollContainer(boolean) 设置该组件是否作为可滚动容器使用 android:keepScreenOn setKeepScreenOn(boolean) 设置该组件是否会强制手机屏幕一直打开 android:longClickable setLongClickable(boolean) 设置该组件是否可以响应长单击事件 android:minHeight setMinimumHeight(int) 设置该组件的最小高度 android:minWidth setMinimumWidtht(int) 设置该组件的最小宽度 android:nextFocusDown SetNextFocusDownId(int) 设置焦点在该组件上,且按向下键时获得焦点的组件ID android:nextFocusLeft setNextFocusLeftId(int) 设置焦点在该组件上,且按向左键时获得焦点的组件ID android:nextFocusRight setNextFocusRightId(int) 设置焦点在该组件上,且按向右键时获得焦点的组件ID android:nextFocusUp setNextFocusUpId(int) 设置焦点在该组件上,且按向上键时获得焦点的组件ID android:onClick 为该组件的单击事件绑定监听器 android:padding setPadding(int,int,int,int) 在组件的四边设置填充区域 android:paddingLeft setPadding(int,int,int,int) 在组件的左边设置填充区域 android:paddingTop setPadding(int,int,int,int) 在组件的上边设置填充区域 android:paddingRight setPadding(int,int,int,int) 在组件的右边设置填充区域 android:paddingBottom setPadding(int,int,int,int) 在组件的下边设置填充区域 android:rotation setRotation(float) 设置该组件旋转的角度 android:rotationX setRotationX(float) 设置该组件绕X轴旋转的角度 android:rotationY setRotationY(float) 设置该组件绕Y轴旋转的角度 android:saveEnabled setSaveEnabled(boolean) 如果设置为false,那当该组件被冻结时不会保存它的状态 android:scaleX setScaleX(float) 设置该组件在水平方向的缩放比 android:scaleY setScaleY(float) 设置该组件在垂直方向的缩放比 android:scrollX 该组件初始化后的水平滚动偏移 android:scrollY 该组件初始化后的垂直滚动偏移 android:scrollbarAlwaysDrawHorizontalTrack 设置该组件是否总是显示水平滚动条的轨迹 android:scrollbarAlwaysDrawVerticalTrack 设置该组件是否总是显示垂直滚动条的轨迹 android:scrollbarDefaultDelayBeforeFade setScrollbarDefaultDelayBeforeFade(int) 设置滚动条在淡出隐藏之前延迟多少毫秒 android:scrollbarFadeDuration setScrollbarFadeDuration(int) 设置滚动条淡出隐藏过程需要多少秒 android:scrollbarSize setScrollbarSize(int) 设置垂直滚动条的宽度和水平滚动条的高度 android:scrollbarStyle setScrollbarStyle(int) 设置滚动条的风格和位置。该属性支持如下属性: insideOverlay insideInset OutsideOverlay OutsideInset android:scrollbarThumbHorizontal 设置该组件的水平滚动条的滑块对应的Drawable对象 android:scrollbarThumbVertical 设置该组件的垂直滚动条的滑块对应的Drawable对象 android:scrollbarTrackHorizontal 设置该组件的水平滚动条的轨道对应的Drawable对象 android:scrollbarTrackVertical 设置该组件的垂直滚动条的轨道对应的Drawable对象 android:scrollbars 定义该组件滚动时显示几个滚动条,该属性支持如下属性值。 none:不显示滚动条 horizont:显示水平滚动条 vertical:显示垂直滚动条 android:soundEffectsEnabled setSoundEffectsEnabled(boolean) 设置该组件被单击时是否使用音效android:tag
为该组件设置一个字符串类型的tag值。接下来可通过View的getTag()获取该字符串,或通过findViewWithTag()查找该组件 android:transformPivotX setPivotX(float) 设置该组件旋转时旋转中心的X坐标 android:transformPivotY setPivotY(float) 设置该组件旋转时旋转中心的Y坐标 android:translationX setTranslationX(float) 设置该组件在X方向上位移 android:translationY setTranslationY(float) 设置该组件在Y方向上位移 android: visibility setVisibility(int) 设置该组件是否可见*Drawable是Android提供的一个抽象类,包含了大量的子类,可以定制UI组件的背景等外观。
ViewGroup为一个抽象类,实际上通过他的子类来作为容器,例如各种布局容器,其通过ViewGroup.LayoutParams、ViewGroup.MarginLayoutParams两个内部类来控制期子组件的分布。
ViewGroup.LayoutParams两个属性
XML属性
说明
android:layout_height
指定该子组件的布局高度 android:layout_width 指定该子组件的布局宽度
他们都支持下面三个属性值:fill_parent、match_parent、wrap_content
ViewGroup.MarginLayoutParams支持的属性
XML属性
方法
说明
android:layout_marginButton setMargins(int,int,int,int) 指定该子组件下边的页边距 android:layout_marginLeft android:layout_marginRight android:layout_marginTop
2、使用XML布局控制UI界面
java代码在Activity中显示视图:
setContentView(R.layout.<资源文件id>);
java代码中访问UI组件:
findViewBuId(R.id.<android.id属性值>);
3、在代码中控制Ui界面
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.main); // 创建一个线性布局管理器 LinearLayout layout = new LinearLayout(this); // 设置该Activity显示layout super.setContentView(layout); layout.setOrientation(LinearLayout.VERTICAL); // 创建一个TextView final TextView show = new TextView(this); // 创建一个按钮 Button bn = new Button(this); bn.setText("OK"); bn.setLayoutParams(new ViewGroup.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); //向layout容器中添加TextView layout.addView(show); //向Layout中添加按钮 layout.addView(bn); //为按钮绑定一个事件监听器 bn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO 自动生成的方法存根 show.setText("单击成功"); } }); }
上面的this是一个Context对象,他代表访问Android应用环境的全局信息的API。他本身是一个抽象类,Activity、Service都继承了Context。
4、一般结合XMl布局和代码混合控制UI界面
这种情况下,习惯把变化小、行为比较固定的组件放在XML布局文件中管理,而那些变化多,行为控制比较复杂的组件交给java代码来管理。
5、开发自定义的View
当Android系统提供的Ui组件不足以满足项目需求是,我们可以通过继承View来派生自定义组件。
首先定义一个继承View基类的子类,然后重写View类的一个或多个方法。
- 构造器:View被实例化或者被加载并构建界面时将需要调用构造器
- onFinishInflate() 当View中所有的子控件均被映射成xml后触发
- onMeasure(int, int) 确定所有子元素的大小
- onLayout(boolean, int, int, int, int) 当View分配所有的子元素的大小和位置时触发
- onSizeChanged(int, int, int, int) 当view的大小发生变化时触发
- onDraw(Canvas) view渲染内容的细节
- onKeyDown(int, KeyEvent) 有按键按下后触发
- onKeyUp(int, KeyEvent) 有按键按下后弹起时触发
- onTrackballEvent(MotionEvent) 轨迹球事件
- onTouchEvent(MotionEvent) 触屏事件
- onFocusChanged(boolean, int, Rect) 当View获取或失去焦点时触发
- onWindowFocusChanged(boolean) 当窗口包含的view获取或失去焦点时触发
- onAttachedToWindow() 当view被附着到一个窗口时触发
- onDetachedFromWindow() 当view离开附着的窗口时触发,Android123提示该方法和 onAttachedToWindow() 是相反的。
- onWindowVisibilityChanged(int) 当窗口中包含的可见的view发生变化时触发
- 02_Android应用界面编程_01_视图(View)组件
- 界面编程与视图(View)组件
- Android学习5--界面编程与视图(View)组件
- Android学习5--界面编程与视图(View)组件
- 界面编程与视图(view)组件——三种UI界面开发方式
- 【android浅析】android程序界面编程与视图(View)组件
- 【android浅析】android程序界面编程与视图(View)组件
- android界面编程与视图组件(续)
- SkinUI入门教程(三) SkinUI视图组件和界面编程
- android界面编程与视图组件
- Android界面编程之一 View组件
- 界面编程之基本界面组件(7)ImageView(图像视图)
- 5_android的界面编程(UI)
- 【Android应用开发技术:用户界面】视图组件View
- 步步为营_Android开发课[13]_用户界面之view(视图)
- 01_Android应用开发环境_02_Android应用的基本组件
- MySQL简单应用之视图(view)
- 模型/视图编程(Model/View Programming)
- 01_Android应用开发环境_04_Android常用开发工具的用法
- 01_Android应用开发环境_05_签名android应用程序
- Quartz定时任务执行两遍的解决办法
- CocoaPods公有库
- 经典网络站点、论坛、博客
- 02_Android应用界面编程_01_视图(View)组件
- 【python3自学笔记3】—字符串和编码
- Decorrelating Semantic Visual Attributes by Resisting the Urge to Share 论文笔记
- 如何讲man帮助手册改成中文的
- JS实现的文本框内容发生改变立马触发事件简介
- 211. Add and Search Word - Data structure design
- android中对u盘以及tf卡插入的广播监听
- .NET使用OpenSSL生成的pem密钥文件
- Spoken Attributes: Mixing Binary and Relative Attributes to Say the Right Thing 论文笔记