Part 2  Android的界面开发初体验:" />
当前位置: 代码迷 >> Android >> Part 2  Android的界面开发初体验:
  详细解决方案

Part 2  Android的界面开发初体验:

热度:51   发布时间:2016-04-28 06:28:53.0
Android新手快速入门教程---Part 2

经过前面的学习我们已经了解了android的特点,程序框架,完成了eclipse开发环境的搭建,学会了工程的建立,以及相关文件的功能

在Part2里我们初步了解下activity的核心,五个基本组件Activity,Intent,Service,ContentProvider,BroadcastReceiver,以及android的一个生命周期

当然我们也会深一步了解工程目录下的东东,接着我们会学习三个基本视图组件:TextView,EditText,Button构建电话拨号器的基本视图,

同时我们也会学习下五个布局,以及android事件机制,自定义控件外观和三种不同的提示方式

,最后的话就是实现我们电话拨号器的功能实现




Part 2  Android的界面开发初体验:

学习路线图:




学习路线解析:

①对于五大组件,App的生命周期有个大体的理解即可;

②工程目录结构要熟悉

③电话拨号器界面的编写不要直接拖拉组件,没意思

④六大布局要核心掌握,这个很重要的!!

⑤三种提示方式也要掌握,这个以后很常用

⑥电话拨号器,了解原理,根据后面给出的提示写出一个短信发送器

⑦9patch工具要掌握,可防止图片拉伸后失真,也比较常用


好了,下面开始正文


android五大组件的介绍:




应用程序的生命周期:

!!!与其他智能手机操作系统不同:app的生命周期(存活时间)不是由进程自己控制的,而是由android系统决定的

而影响的主要因素:该进程对于用户的重要性,以及当前系统中的所剩可用内存

当可用内存不足时,系统会终止某些进程以便回收内存资源

进程级别图:



ps:以上的两个内容只需要了解即可,没必要死记,有点印像就可以了


深入了解工程目录:

1.资源的引用



2.工程目录下的详细代码的解析:

见另一篇博文:http://blog.csdn.net/coder_pig/article/details/13771645


用户界面的开发

要创建我们的用户界面,首先第一个要了解的就是view类,view类是可视化控件的父类,提供控件描绘和事件处理方法

接着就到我们的viewGroup可以拥有子控件,可以看成是容器吧

通常可见的android app都是由可视化控件  +  布局组成的

控件的属性可以在xml文件中静态设置或者在java代码中动态设置


话不多说,开始我们第一个程序:电话拨号器的布局

先打开main.xml的布局文件

这里 可以使用图形进行组件的拖拉,实现所需要的布局,不过笔者不是很喜欢这种方式,因为生成的代码有一定的冗余,这个

看个人的喜欢,以下运行以后的视图


我们需要做什么呢?

先设置布局吧,LinearLayout布局,并设为竖直方向排列组件,接着把三个组件:Textview,EditText,Button添加到面板即可

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/LinearLayout1"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context=".MainActivity" >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/scanfnum" />	<EditText	    android:layout_width="fill_parent"	    android:layout_height="wrap_content"	    android:id="@+id/editnum" 	    />	<Button	    android:layout_width="wrap_content"	    android:layout_height="wrap_content"	    android:text="@string/btncall"	    android:id="@+id/btncall" 	    /></LinearLayout>

!!!编程小贴士:对于文本啊,比如按钮的显示的文本,一种好的习惯是把他放到string.xml文件中,[email protected]

  还有养成良好的命名习惯很重要哦!!!


好的,界面的大概布局就这样,说到布局,接下来我们会详细地给大家讲下Android的6大布局


Android的六大布局

LinearLayout:线性布局

链接:android---LinearLayout(线性布局)详解



RelativeLayout相对布局

链接:android---RelativeLayout(相对布局)详解



FrameLayout:帧布局

链接:android---FrameLayout(帧布局)详解


TableLayout:表格布局

链接:android---TableLayout(表格布局)详解



AbsoluteLayout:绝对布局

链接:android---AbsoluteLayout(绝对布局)详解

GridLayout:网格布局

链接:android---GridLayout(网格布局)详解



布局使用总结:


其实我们普遍的用法是:LinearLayout的weight属性  + RelativeLayout(相对布局)来进行布局,因为这样可以解决自适应的问题
所谓的自适应问题就是,比如你的一个界面在一台手机上是居中的,但是换了一部手机组件就乱了,或者拉伸变形等
当然,其他的布局也有必要进行学习!




三种提示方式:

对话框AlertDialog

链接:对话框的父类(AlertDialog)


Toast(吐司)和Notification(状态栏)

链接:  Toast和Notification



电话拨号器的完整实现:

和上面一样的布局:

main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/LinearLayout1"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context=".MainActivity" >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="请输入电话号码.." />	<EditText	    android:layout_width="fill_parent"	    android:layout_height="wrap_content"	    android:id="@+id/editnum"	    android:inputType="number"	    />	<Button	    android:layout_width="wrap_content"	    android:layout_height="wrap_content"	    android:text="拨打电话"	    android:id="@+id/btncall" 	    /></LinearLayout>


因为拨打电话是需要权限的,所以我们要在AndroidManifest.xml文件中添加店打电话的权限




添加完权限后就到我们的主要功能代码的编写了
来到MainActivity.java文件下:

package com.jay.example.caller;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.app.Activity;import android.content.Intent;public class MainActivity extends Activity {	//定义编辑框和文本框对象	private EditText editnum;	private Button btncall;			@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		//实例化组件		editnum = (EditText) findViewById(R.id.editnum);		btncall = (Button) findViewById(R.id.btncall);				//为拨打按钮设置点击事件		btncall.setOnClickListener(new OnClickListener() {						@Override			public void onClick(View arg0) {				//获取编辑框里电话号码的值				String mobile = editnum.getText().toString();				Intent it = new Intent();				//为意图添加一个行为:拨打电话,并且把电话号码写入it中				it.setAction("android.intent.action.CALL");				it.setData(Uri.parse("tel:"+mobile));				//启动另个视图				startActivity(it);							}		});			}}


代码解析:
这里我们为按钮设置了一个点击事件,当我们点击按钮后,获取输入框中的电话号码
通过意图Intent,告诉系统,我要Call,Call谁,然后把电话号码写入Intent,启动Intent,完成


效果图:
要启动另个一虚拟机哦!我们直接拨打另个avd虚拟机的编号:5556

虚拟机5556有电话号码拨入了= =,这个很简单




9patch工具的使用


链接:9妹(9patch)工具实现局部缩放



总结:

好吧,Part 2的部分就写到这里,内容还是比较多的
读者可以按着路线图慢慢琢磨,量多,但不难
还是那句话,我们学的是编程,看懂了,不代表自己会写,
还是得一个个过,有个大体映像,知道什么时候用什么知识点
多写代码,少说空话!
谢谢大家的支持,我会继续努力的!
有什么写得不好的,漏掉的,或者错的,或者有好的例子
欢迎读者指出!
O(∩_∩)O不甚感激!



课后作业:

1.一定要熟悉6个布局的基本使用
2.写一个类似于电话拨号器的短信发送器,网上有思路,别直接看代码,没用
3.使用9patch工具处理一张图片,然后把他用到布局里面(eg:设置为按钮的背景,按钮名字很长,看效果)



  相关解决方案