在读API,我们可以发现J2ME中Canvas的repaint()与Android中 View的invalidate()/postInvalidate()方法实现了相同的功能(连说明文字几乎都一样…), 但是invalidate()/postInvalidate()两者却有着区别:invalidate()只能在UI这个线程里通过调用onDraw(Canvas canvas)来update屏幕显示,而postInvalidate()是要在non-UI线程里做同样的事情的。
<!--EndFragment-->
代码如下:
先创建入口类,其中定义一个
public class AndroidActivity extends Activity implements Config {
static BirdUI image;
static int id1;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置当前Activity界面布局
setContentView(R.layout.main);
}
}
BirdUI类继承了ImageView,可以直接通过对象调用invalidate()/postInvalidate(),其中onDraw(Canvas canvas)是mageView的自己的方法。 BirdUI类中有两给方法:
public void showImage() {
// 设置bitmap的图片资源
bitmap = Bitmap.createBitmap(BitmapFactory.decodeResource(
getResources(), R.drawable.bird1));
// 设置bitmap1的图片资源
bitmap1 = Bitmap.createBitmap(BitmapFactory.decodeResource(
getResources(), R.drawable.pig1));
}
// 重写onDraw方法
public void onDraw(Canvas canvas) {
// 执行父类的onDraw方法
super.onDraw(canvas);
if (bitmap != null) {
// 遍历小猪线程,绘制小猪
for (PigThread pig : pigs) {
// 画小猪
canvas.drawBitmap(bitmap1, pig.x, pig.y, paint);
}
}
// 在BirdThread.xx,BirdThread.yy坐标处画图bitmap图形
// 画小鸟
//System.out.println("BirdThread.xx" + BirdThread.xx + "BirdThread.yy"
//+ BirdThread.yy);
if (bitmap != null) {
canvas.drawBitmap(bitmap, BirdThread.xx, BirdThread.yy, paint);
}
}
在主类运用线程,1,在线程里启动小猪线程
2,启动小鸟线程
代码如下:
new Thread() {
public void run() {
while (true) {
try {
sleep(1500);
// 创建小猪对象
PigThread pig = new PigThread();
// 启动小猪对象
pig.start();
// 添加到在接口Config中定义ArrayList<PigThread> // pigs=newArrayList<PigThread>();
// 便于遍历
pigs.add(pig);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}.start();
// 创建小鸟对象
BirdThread bbar = new BirdThread();
// 启动线程
bbar.start();
他不是运用在本线程里,而是非本线程里。不能引用invalidate(),而只能 引postInvalidate。才能起到嵌套线程的作用。他不是運用在本线程里,而是非本线程里。
生命周期的诠释
http://xiaoruanjian.iteye.com/blog/1369325
呵呵,我觉得很全面,里面下了功夫。
请各位前辈指点,如有改正的地方,请各位前辈指正,呵呵额,谢谢。
各位同仁,也可以提意见,呵呵,谢谢。
分享到:
相关推荐
【Android入门课程介绍】 在数字化世界中,Android操作系统占据着移动设备市场的主导地位,因此学习Android开发成为许多技术爱好者和职业开发者的重要技能。本课程专为初学者设计,旨在帮助学员快速掌握Android应用...
android系统框架介绍,Android系统 = Linux内核 + Android运行时。 Android系统使用的Linux内核包含了一些专用驱动,例如Logger、Binder、Ashmem、Wakelock、Low-Memory Killer和Alarm等,这些Android专用驱动构成了...
在Android开发中,有时我们需要为应用的用户界面增添一些视觉上的亮点,比如让TextView中的文字部分呈现出渐变色效果。这不仅可以吸引用户的注意力,也可以使界面更具设计感。本篇文章将详细讲解如何在Android中实现...
Android 内核和驱动篇-Android 内核介绍 Android 内核是基于 Linux 2.6 内核的,它是一个增强内核版本,除了修改部分 Bug 外,它提供了用于支持 Android 平台的设备驱动。Android 内核的核心驱动主要包括: 1. ...
本文将详细介绍Android BSP的相关概念,包括Android架构、框架、库及内核等内容,帮助读者深入理解Android BSP的核心组成部分及其在实际开发中的应用。 #### 二、Android BSP概述 BSP主要包含以下几个方面: 1. *...
Android框架与应用开发是移动开发领域中的核心组成部分,它涵盖了从系统级的框架设计到用户界面的构建,以及应用程序的实现和优化等多个方面。在这个领域,开发者需要掌握一系列技术和工具,以便创造出高效、稳定且...
Dalvik虚拟机(Dalvik Virtual Machine, DVM)是Android系统的核心组成部分之一,它是一种专为移动设备设计的虚拟机。与传统的Java虚拟机(JVM)相比,Dalvik具有以下特点: 1. **DEX格式**:Dalvik虚拟机使用.dex文件...
【Android介绍】 Android是由Google开发并维护的开源操作系统,专为移动设备如智能手机和平板电脑设计。它的名字来源于“机器人”一词,自2007年11月5日首次公布以来,Android已经成为全球最广泛使用的智能手机操作...
在“第3章 清点可用资本——Android SDK介绍.wmv”这个视频文件中,可能涵盖了如何使用SDK Manager下载SDK组件,如何设置开发环境,以及如何使用Android Studio进行初步开发的教程。"readme.txt"可能提供了关于这些...
本文档对 Android ArcGIS 部分API进行了详细的介绍和解释。 一、MapView 类 MapView 是 ArcGIS 平台在 Android 系统上的地图容器,提供了多种方法来实现地图的显示和交互。其中,addLayer(Layer layer) 方法用于...
本文将详细介绍几种Android基本组件的功能与使用方法,包括`TextView`、`EditText`以及`TableLayout`。 #### TextView:文本框组件 `TextView`是Android中最常用的组件之一,用于在界面上展示文本信息。其主要属性...
本篇将详细介绍如何在TextView中实现文字过长时的省略显示和滚动显示。 首先,TextView的`ellipsize`属性是一个关键,它定义了当文本超出TextView的边界时如何处理。以下为四种不同的`ellipsize`值及其效果: 1. `...
描述部分对 Android 安装环境搭建进行了简要的介绍,强调了 Android 安装环境搭建的重要性。 标签部分只有一个标签“Android”,表明本节的内容是关于 Android 的。 部分内容对 Android 安装环境搭建进行了详细的...
Android框架与应用开发是移动开发领域中的核心组成部分,它为开发者提供了一个强大的平台来构建功能丰富的应用程序。Android框架包括一系列的组件和服务,这些组件协同工作,使得开发者能够创建交互式的用户体验,...
下面将对 RIL 在 Android 操作系统中的实现进行详细介绍,并重点解释文档摘要与描述中提到的关键内容。 ### RIL (Radio Interface Layer) 简介 RIL 是 Android 系统中的一个关键组件,它作为应用程序层与底层硬件...
1. **Android基础** (01.pptx): 这一部分主要介绍Android系统的基本架构和组件,包括Activity、Service、BroadcastReceiver、ContentProvider等核心概念,以及AndroidManifest.xml文件的重要性。 2. **Android ...
Android蓝牙架构主要包括两个主要部分:Bluetooth Manager Service和Bluetooth Adapter。Bluetooth Manager Service是系统服务,负责管理蓝牙设备的全局状态,如开启、关闭蓝牙,以及扫描和连接设备。Bluetooth ...
Android 内核和驱动篇-Android 内核介绍 Android 内核是基于 Linux 2.6 内核的,提供了用于支持 Android 平台的设备驱动。 Android 内核的核心驱动主要包括: 1. Android Binder:基于 OpenBinder 框架的一个驱动...
【Android的MediaPlayer架构介绍】 Android系统的MediaPlayer组件是其多媒体处理的核心部分,负责音频和视频的播放功能。在Android系统中,像Music和Video这样的应用程序都依赖于MediaPlayer来实现媒体内容的播放。...
6. **布局设计**:使用XML布局文件创建用户界面是Android开发的一部分。教程会涵盖LinearLayout、RelativeLayout、ConstraintLayout等布局管理器的使用。 7. **事件处理**:了解如何处理用户交互,如点击按钮或滑动...