Activty是Android中最常用的组件,是应用程序的表示层,Activity一般通过View来实现应用程序的用户界面,相当于一个屏幕,用户与程序的交往是通过该类实现的。

下面首先对Activity的生命周期进行介绍,正确地了解Activity的生命周期对开发出优秀的应用程序至关重要。

如下图所示,Activity的生命周期主要包含三个状态,各种状态之间的切换是通过各种回调方法实现的。

  1922755565912627504

1.运行态(Running)

处于运行态的Activity拥有焦点,正在与用户进行交互,该状态的Activity可以为用户提供信息并接收用户的事件响应。

2.暂停态(Paused)

处于暂停态的Activity失去焦点,一般被运行态的Activity替代,当前台显示的Activity不是全屏时,可以见到暂停态的Activity。

3.停止态(Stopped)

处于停止态的Activity没有焦点,并且是不可见的,系统随时可以将其释放。

Activity的显示内容是由View对象提供的,View对象继承自View类,其中每个View对象管理屏幕中的一个矩形区域。Android已经自带了很多View对象,例如按钮、菜单、文本框等,而除了使用Android自带的View外,还可以自定义View。接下来的例子将介绍自定义View在Activity中的显示,步骤如下。

1)创建一个名为Android_Sample_2_5的Android项目。

image

2)在src/wyf/ytl目录下创建一个名为MyView的Java文件,代码如下所示。

  1: package wyf.ytl;
  2: 
  3: import android.content.Context;
  4: import android.graphics.Canvas;
  5: import android.graphics.Color;
  6: import android.graphics.Paint;
  7: import android.view.View;
  8: 
  9: public class MyView extends View{
 10: 
 11: 	Paint paint;
 12: 	public MyView(Context context)
 13: 	{
 14: 		super(context);
 15: 		paint = new Paint();
 16: 		paint.setColor(Color.WHITE);
 17: 		paint.setTextSize(20);
 18: 		paint.setAntiAlias(true);
 19: 	}
 20: 	
 21: 	protected void onDraw(Canvas canvas)
 22: 	{
 23: 		super.onDraw(canvas);
 24: 		canvas.drawColor(Color.GRAY);
 25: 		canvas.drawRect(10,10,110,110, paint);
 26: 		canvas.drawText("此界面为自定义的View", 60, 170, paint);
 27: 	}
 28: 	
 29: 	
 30: }
第9行定义一个继承自View的类,而第11行声明了一个用于绘制的画笔。

第12~19行为该类的构造器,在构造器中初始化画笔,然后对画笔进行设置。

第21~27行重写View中的绘制方法,该方法主要用于View界面的绘制,在该方法中先绘制界面的背景颜色,然后绘制一个矩形,最后绘制一个字符串。

3)此时打开Android_Sample_2_5Activity.java,用下列代码替换原有代码。

  1: package wyf.ytl;
  2: 
  3: import android.app.Activity;
  4: import android.os.Bundle;
  5: 
  6: public class Android_Sample_2_5Activity extends Activity {
  7: 
  8: 	MyView myView;
  9: 
 10: 	@Override
 11: 	public void onCreate(Bundle savedInstanceState) {
 12: 		super.onCreate(savedInstanceState);
 13: 		myView = new MyView(this);
 14: 
 15: 		setContentView(myView);
 16: 	}
 17: }

4)运行该项目,将会看到如下图所示的效果。

image

作者:银月莲
出处:http://www.cnblogs.com/moonsilvering
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,包括文章,代码,图片等本站内所有资源,否则保留追究法律责任的权利。

posted on 2011-12-24 19:32  银月莲  阅读(338)  评论(0编辑  收藏  举报