设置文本显示
继承ViewText的widget有以下集中设置文本显示的方式:一、在Android XML中 android:text="xxxxx"中设定;二、在程序中通过widget.setText("xxxx");三、在res/values/strings.xml中设置,然后通过R.string.xxx在Android或者在程序中使用。对于要适配多国语言,建议采用第三种方式,只需对stings.xml的相关词汇进行翻译即可。
OptionMenu
在手机上,有一个Menu按钮,按下后,可以显示OptionMenu,如下处理
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
//add(int groupId, int itemId, int order, int titleRes),对于exit的menuItem,0表示GroupId,1表示ItemId,这两个Id将用于Menu按下后触发回调函数中用于判断具体是哪个menuItem,第三个表示拜访的顺序,在这里第一个是exit,第二个是about,第四个参数引向strings.xml中定义的内容。
menu.add(0,1,1,R.string.menu_exit);
menu.add(0,2,2,R.string.menu_about);
return super.onCreateOptionsMenu(menu);
}
创建的Menu后,需要触发回调函数,这也是一个override的方法,如下处理:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
if(item.getItemId() == 1){ //在这个例子中我们只有一个group,所有只需检查itemId就可以了。
finish();
}else if(item.getItemId() == 2){
... ...
}
return super.onOptionsItemSelected(item);
}
LinearLayout
从上至下,或从左到右。是box model,基于方块依次顺序方式排列。RadioGroup是LinearLayout的继承项
orientation
在Android XML中使用android:orientation,值为horizontal或者vertical,排版将是水平从左到右,或者竖直从上到下。在java程序中,我们可以通过setOrientation() 来改变方向,例如setOrientation(LinearLayout.HORIZONTAL);
fill model
一个widget根据其内容有一个最合适的大小,也就是natural大小,然则我们通才需要根据容器的大小进行排版,在LinearLayout中android:layout_width和android:layout_height是必须设置的,有三种方式:
1)指定尺寸,例如125px表示125pixels
2)wrap_content,这就是natual的尺寸
3)fill_parent:填满容器剩余的尺寸。
fill_parent将会使用剩余所有的空间,哪怕是后面还有widget,也就将空间填满。而我们并不希望如此,希望剩余的widget仍然有效的排列,而是希望将其他widget排列后的剩余空间。我们将使用layout_weight的属性。
weight
layout_weight和wrap_content共同使用,缺省layout_weight为0,也就是size为natural size。(如果和fill_parent相结合,其结果无法预测,因此需特别注意)如果我们希望widget使用了剩余的空间,那么可以设置layout_weight一个有效值。这里是权重,如果有多个widget,就按此权重来分配剩余的空间。如果所有的layout_weight一样,这些widget就对剩余空间进行等分。有时我们会看到不一定很严格按照设定的权重比例来分配空间,必须能支持natural的大小,所以可能会有适配。
Gravity
线性布局从上到下,或这从左到右,可以使用gravity,提供align的方式,不按此顺序。对于android:layout_width="wrap_content" ,android:layout_gravity可以设置为left, center_horizontal, righ。在JAVA代码中,可以使用 setGravity(),例如setGravity(Gravity.LEFT); setGravity(Gravity.CENTER_HORIZONTAL);
需要注意的是在widget中也是有相应的属性,android:gravity,这里指的是widget中文字在widget中的排放位置,例如android:gravity="right"。
右图是button结合weight和gravity的例子
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="false"
android:text="test1"
android:layout_gravity="left"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:singleLine="false"
android:text="test2/ncenter_horizontal"
android:layout_gravity="center_horizontal"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="false"
android:text="test3/nLine_2/nLine_3"
android:layout_gravity="right"
/>
如果我们将第三个的android:layout_gravity="right"改为android:gravity="right",结果如下图:
Pad和Margin
缺省地,各widget之间是紧密排列的,如果需要留边,可以采用padding的方式,如图所示。在XML中使用android:padding,android:paddingLeft, android:paddingRight,android:paddingTop, 和android:paddingBottom。在Java code中可以使用setPadding() 来处理。例如android:paddingTop="30px"。
需要注意的是,如果设置背景android:background,那么包括widget和padding的区域都是看不到背景的。也就是widget实际上包含了padding的尺寸。为了避免这种情况,我们可以使用margin来替代,例如android:layout_marginTop,例如android:layout_marginLeft="100px"
通俗地,padding可以理解为widget的内边框,margin可以理解为外边框。
相关链接:
我的Android开发相关文章
分享到:
相关推荐
Android学习笔记(八):Activity-OpenMenu和LinearLayout
•Android---UI篇---Tab Layout(选项卡布局) • •Andorid---UI篇---TableLayout(表格布局) • •Android---UI篇---RelativeLayout(相对布局) • •Android---UI篇---GridView...•Android---UI篇---Menu(菜单)
第一种介绍的就是使用开源库,因为使用开源库最简单,也更加的符合我们...activity_main.xml <?xml version=1.0 encoding=utf-8?> <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android
Android学习笔记2-1~2-5 推荐新手向学习视频:B站https://www.bilibili.com/video/av38409964点我传送 2-1 布局管理器 线性布局(LinearLayout) 相对布局(RelativeLayout) 2-1-1 LinearLayout 常用属性 android...
此控件基本包含所有的的手势操作, 2、基础配置 main项目可以生成jar包引用或者作为另外一个项目引用,但个人更喜欢直接引用代码,方便后续修改...使用方式和 ImageView 的使用方式是一样的,可以自己尝试其他属性。
-取决于没有第三方库-没有原始文件(图片/可绘制图形等),只有一个Java和style.xml文件-拖动开关支持 使用年龄 Gradle: repositories { mavenCentral() jcenter() } ... dependencies { compile '...
3 9 1 Android中的窗口:Activity 3 9 2 广播接收器:Broadcast Receiver 3 9 3 服务 Service 3 9 4 内容提供者 Content Provider 第4章 对话框 信息提示和菜单 4 1 对话框 4 2 信息提示 4 2 1 Toast信息框 4 2 2 ...
掌握Android的Activity 和Fragement用法; 熟悉XML 和JSon 文件读取 实验内容 要求使用SQLite数据库实现用户注册和登录,读取数据库信息,退出时生成XML文件或JSON文件。 四、实验过程和结果 content_main.xml: ...
LinearLayout(线性布局),RelativeLayout(相对布局),TableLayout(表格布局),FrameLayout(帧布局) 10:单元测试 得到单元测试框架: <manifest> <activity/> <uses-library android:name="android.test.runner...
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 android:layout_width="fill_parent" 5 android:layout_height="fill_parent" 6 android:id="@+...
第四讲:Activity入门指南 Activity 第五讲:用户界面 View(一) FrameLayout, LinearLayout 第六讲:用户界面 View(二) AbsoluteLayout,RelativeLayout 第七讲:用户界面 View(三) TableLayout 第八讲:...
大部分app打开pdf文件是通过intent调起手机中能打开pdf文件的工具,来查看pdf文件,如果需求是,用户在app内下载好pdf文件后,不...LinearLayout xmlns:android=http://schemas.android.com/apk/res/android android:l
android linearlayout 学习
为什么有时候像android:layout_marginBottom等变量的赋值为负数? 例如如下代码: <?xml version="1.0" encoding="UTF-8"?> <LinearLayout android:orientation="vertical" android:id="@id/Widget_2X4_frame" ...
文档介绍了Android学习指南Layout前言,(1) LinearLayout,Android官方LinearLayout Demo,(2) RelativeLayout,官方的RelativeLayout Demo,(3) TableLayout,官方的TableLayout Demo
Android开源代码,自定义Layout,继承自LinearLayout,内部控件自动换行显示。例如:可用来开发数量变化的属性标签群。
一个简单的时间轴实现(LinearLayout)。因为继承的LinearLayout,所以请直接addView吧-V-项目地址:https://github.com/razerdp/UnderLineLinearLayout 效果图:如何使用: xmlns:app=...
的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...
Android studio :实现密码登录界面和验证码登录界面的切换(不用新建xml页面) 一、了解Xml设置隐藏属性 android:visibility=” “ Visible:正常显示 Invisible:保留位置 Gone:完全隐藏 二、实现图示 Java...
重写LinearLayout,仿淘宝商品详情页,上拉查看更多详情 使用 布局:TwoPageLayout作为父布局,内部有且只能有两个子控件ScrollEndScrollView 详细介绍请看:...