android入门学习1

使用XML布局文件控制UI界面

1.在安卓程序的res/layout 目录下编写XML布局文件——要求XML文件名符合Java命名规则
2.在Activity中用setContenView(R.layout.main)显示XML文件中的布局内容,买你为XML文件名
3.在XML中添加多个UI组件,可以通过android:id访问指定UI组建:findViewById(R.id.<android.id.id属性值>)

android应用的所有组件都建立在View类,ViewGroup类的基础上

ViewGroup作为子类,继承了View类,常用作容器使用。因其是抽象类,实际使用时通常用其子类做为容器,如各种布局管理器。
ViewGroup类控制其子类的分布依赖于ViewGroup.LayoutParams和ViewGroup.MarginLayoutParams两个内部类。

View,ViewGroup类的XML常用属性

android:orientation属性:布局管理器组件排列方式(horizontal水平排列,vertical垂直排列)
android:gravity属性:LinearLayout的XML属性,设置组件对齐方式,包括(top ,bottom,left,right,center_vertical,fill_vertical,center_horizontal,fill_horizental,center,fill,clip_vertical,clip_horizontal)。这些属性可以同时指定,如:android.horizontal= "top | left"
android:padding:设置组件四面的填充区域,另有android:padding(Buttom/Left/Right/Top)来设置单一边的填充区域
android:layout_width和android:layout_height属性:ViewGroup.LayoutParams所支持的两个XML属性,用于设计组件基本宽、高。包括(fill_parent(充满父组件),match_parent(与前者相同,android2.2后推荐使用),wrap_content(恰好包括其内容))
android:id属性:为当前组件指定id,在Java代码中可以通过id单独引用这个组件。在组件id被指定后,在R.java中自动派生出对应属性,可在Java代码中通过findViewById()方法获取该属性。
android:background属性:为组件设置背景,可以为图片或颜色
android:layout_marginBottom,_marginLeft,_marginRight,~_marginTop:指定该子组件 的各个边的页边距。

类同CSS盒子模型


不同部分的说明:
Margin(外边距) - 清除边框外的区域,外边距是透明的。
Border(边框) - 围绕在内边距和内容外的边框。
Padding(内边距) - 清除内容周围的区域,内边距是透明的。
Content(内容) - 盒子的内容,显示文本和图像。——by菜鸟教程

实例1:图片浏览器
1.定义线性布局容器
`<LinearLayout xmls:android="http://schemas.android.com/apk/res/android"
android:id = "@id/root"
android:orientation= "vertical"
android.layout_width= "fill_parent"
android.layout_height= "fill_parent"

</LinearLayout>`

2.在程序中获取线性布局容器
int[] images = new int[] { R.drawable.java, R.drawable.ee, R.drawable.classic, R.drawable.ajax, R.drawable.xml,}; int currentImg = 0; @Override public void OnCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContenView(R.layout.main); LinearLayout main = (LinearLayout) findViewById(R.id.root);//获取LinearLayout布局容器 final ImageView image = new ImageView(this);//创建ImgView组件 main.addView(image); image.setImageResource(image[0]); image.setOnClickListener(new onClickListener() { @override public void onClick(View v) { image.setImageResource(images[++currentImg%images.length]); } } ); }

一些简单的用户界面——输入
1.文本输入框EditText
<EditText android:id="@+id/edit_message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/edit_message" />
其中,@string/edit_message需要在res/values/string.xml中定义

<resources><string name="edit_message">Enter a message</string>
</resources>`

2.按钮Button——发送按钮
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_send" />
其中@string/button_send同上

3.改变输入框使其充满能够使用的整个屏幕宽度
方法:在activity_my.xml文件里,设置EditText的layout_weight属性值为1 .并设置EditText的layout_width值为0dp.
修改后代码为
<EditText android:id="@+id/edit_message" android:layout_width="0dp" android:layout_weight= "1" android:layout_height="wrap_content" android:hint="@string/edit_message" />

4.点击响应——发送
(1)为 Button 标签添加android:onclick属性
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_send" android:onClick="sendMessage" />
其中,sendMassage为用户点击屏幕按钮时触发方法的名字

(2)在activity.java中添加sendMassage函数
public void sendMessage(View view) { // Do something in response to button }
Warning:为使系统能够将该方法(你刚在MyActivity.java中添加的sendMessage方法)与在android:onClick属性中提供的方法名字匹配,它们的名字必须一致,特别需要注意的是,这个方法必须满足以下条件:
是public函数
无返回值
参数唯一(为View类型,代表被点击的视图)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容