Ⅰ 求一个android实例,跟随手指的小球,要详细!!!!!!
这是我之前写的一个按钮跟随手指的,你可以看下,界面的话很简单,就一个按钮,主要是通过Activity本身自带的事件来实现的。
package com.chapter4;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.AbsoluteLayout;
import android.widget.Button;
public class Activity2 extends Activity{
/** Called when the activity is first created. */
final static int WRAP_CONTENT=-2;//表示WRAP_CONTENT的常量
final static int X_MODIFY=4;//在非全屏模式下X坐标的修正值
final static int Y_MODIFY=52;//在非全屏模式下Y坐标的修正值
int xSpan;//在触控笔点击按钮的情况下相对于按钮自己坐标系的
int ySpan;//X,Y位置
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity2_main);
Button bok=(Button)this.findViewById(R.id.Button01);
bok.setOnTouchListener(
new OnTouchListener()
{
public boolean onTouch(View view, MotionEvent event) {
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN://触控笔按下
xSpan=(int)event.getX();
ySpan=(int)event.getY();
break;
case MotionEvent.ACTION_MOVE://触控笔移动
Button bok=(Button)findViewById(R.id.Button01);
//让按钮随着触控笔的移动一起移动
ViewGroup.LayoutParams lp=
new AbsoluteLayout.LayoutParams
(
WRAP_CONTENT,
WRAP_CONTENT,
(int)event.getRawX()-xSpan-X_MODIFY,
(int)event.getRawY()-ySpan-Y_MODIFY
) ;
bok.setLayoutParams(lp);
break;
}
return true;
}
}
);
}
@Override
public boolean onKeyDown (int keyCode, KeyEvent event)
{//键盘键按下的方法
Button bok=(Button)this.findViewById(R.id.Button01);
bok.setText(keyCode+" Down");
return true;
}
@Override
public boolean onKeyUp (int keyCode, KeyEvent event)
{//键盘键抬起的方法
Button bok=(Button)this.findViewById(R.id.Button01);
bok.setText(keyCode+" Up");
return true;
}
public boolean onTouchEvent (MotionEvent event)
{
//让按钮随着触控笔的移动一起移动
Button bok=(Button)this.findViewById(R.id.Button01);
ViewGroup.LayoutParams lp=
new AbsoluteLayout.LayoutParams
(
WRAP_CONTENT,
WRAP_CONTENT,
(int)event.getRawX()-xSpan-X_MODIFY,
(int)event.getRawY()-ySpan-Y_MODIFY
) ;
bok.setLayoutParams(lp);
return true;
}
}
Ⅱ 设计一个Android程序,包含一个TextView和一个Button,每次单击Button时,
1、首先在layout文件夹下面的xml布局文件中,添加代码来建立Button。
Ⅲ android采用什么方式管理activity实例
Android采用任务线(Task)的方式来管理Activity的实例搭模。
在开发Android应用时,经常会涉及一些消耗大量系统内存的情况,例如视频播放、大量图片或者程序中开启多个Activity没有及时关闭等,会导致程序出现错误。为了避免这种问题,Google提供了一套完整的机制让开发人员控制 Android中的任务线。
Android系统中的任务线,类似于一个容器,用于管理所有的Activity实例。在存放Activity时,满足“先进后出 (First-In/Last-Out )"的原则。
但是使用任务线有以下缺点:粗枝链
每开启一次页面都会在任务栈中添加一个岩孙Activity,而只有任务栈中的Activity全部清除出线时,任务线被销毁,程序才会退出。这样就造成了用户体验差, 需要点击多次返回才可以把程序退出。
每开启一次页面都会在任务栈中添加一个Activity还会造成数据冗余, 重复数据太多, 会导致内存溢出的问题(OOM)。为了解决任务栈产生的问题,Android为Activity设计了启动模式。
在实际开发中,应根据特定的需求为每个Activity指定恰当的启动模式。Activity的启动模式有4种,分别是standard、singleTop、singleTask和singlelnstance。在AndroidManifest.xml中,通过<activity>标签的android:launchMode属性可以设置启动模式。
Ⅳ android 五大应用开发框架是什么
android应用开发框架是 Application Framework,其系统架构由5部分组成,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。
1、Linux Kernel (Linux内核)
Android基于Linux 2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络 堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。
2、Android Runtime (运行库)
Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。
Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。 大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。
3、Libraries (程序库)
Android包含一个C/C++库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(application framework)暴露给开发者。
4、Application Framework (应用框架层)
通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。 开发者可以完全使用核心应用程序所使用的框架APIs。
应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。
5、Applications(应用层)
Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编程语言写的。Android本身是一套软件堆迭(Software Stack),或称为“软件迭层架构”,迭层主要分成三层:操作系统、中间件、应用程序。
(4)android实例程序扩展阅读
开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。
隐藏在每个应用后面的是一系列的服务和系统,其中包括;
丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(lists),网格(grids),文本框(textBoxes),按钮(buttons),甚至可嵌入的web浏览器。
内容提供器(ContentProviders)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据
资源管理器(ResourceManager)提供非代码资源的访问,如本地字符串,图形,和布局文件(layoutfiles)。
通知管理器(NotificationManager)使得应用程序可以在状态栏中显示自定义的提示信息。
活动管理器(ActivityManager)用来管理应用程序生命周期并提供常用的导航回退功能。