`
李佳豪king
  • 浏览: 7465 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

关于安卓的Activity

阅读更多
 

其实说实话,还是不怎么爱写博客,索性不勉强自己,但今天想写点东西,关于安卓的Activity。自己写了一个安卓的简单游戏,虽然简单,但里面牵扯到了颇多类容,算是入了个门。我写的这个游戏主要实现有安卓组件运用,界面风格设定,界面布局,界面跳转,界面销毁,界面返回键菜单键的屏蔽,自定义SurfaceView组件画图,线程的使用,事件监听,获取权限,数据保存等等等等。里面几乎所有的类容都与Activity有关。

 

1.自定义界面风格

 

在资源文件夹的value目录下的style.xml里面可以自己设定风格,最好的方式是先继承一种系统提供的风格,再根据自己的需要改 ,下面的MyTheme是我自定义的风格

<style name="MyTheme" parent="AppBaseTheme"
        >
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowNoTitle">true</item>
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    </style>

同时还需要在安卓的主配置文件里面,把自己需要改变风格的界面里设置为自己定义的风格

 <activity
            android:name="com.example.foolgame.GameActivity"
            android:label="@string/title_activity_game"
            android:theme="@style/MyTheme" >
        </activity>

 

2.界面布局

 

 

这个部分是很死的类容,只要搞清每种布局的属性就行了,再改一些布局的基本属性,多种布局嵌套使用,这些搞定了,你的界面想怎么布局就就怎么布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".AnswerActivity" >
    <TextView
      />
    <TableLayout
       ======嵌套一个布局
    </TableLayout>
</RelativeLayout>

 

3.界面跳转

 

 

 界面的跳转是一件再容易不过的事情了

startActivity(new Intent(this,AnswerActivity.class));

 so easy有木有

 

 

4.界面的销毁

 

 

这个东西更简单,只要this.finish();就OK了,不过还有事情不要忘记做了,就是这个界面的线程,你可以用标记来结束线程,或是重写Activity的onDestroy方法,这个方法很有用,它处在安卓页面生命周期的末尾,所以我们可以再这个方法里面写一些销毁页面后的善后工作,比如结束线程

	public void run() {
		while(!stopflag){

	}
	 protected void onDestroy() {
         //这里可以写一些善后工作
		 super.onDestroy();
		 stopflag=true;
	 }

 

5.屏蔽返回键或菜单键

 

 

返回键的的屏蔽或是设置询问对话框是很有必要的,我几乎每一个界面都屏蔽了原来Activity的返回键功能,这可以通过重写来实现

	 public boolean onKeyDown(int keyCode, KeyEvent event) {  
			if(keyCode==KeyEvent.KEYCODE_BACK){  
			    new Exit(this);//弹出询问对话框
			}  
			    return false;  
	} 

 

 

6.用SurfaceView画图

 

 要用好这玩意的关键在于三点:

1.获取SurfaceHolder,hold住全场,

2.实现SurfaceHolder.Callback接口并且添加回调函数

3.锁定画布,画图,提交画布

下面是一个SurfaceView的模板代码

//这是强哥讲的另一种自定义组件,一般是用这个做游戏的
public class MySurfaceView extends SurfaceView implements Callback,Runnable{
	private ArrayList<Entity> list = new ArrayList<Entity>();
	private SurfaceHolder holder;
	private Paint paint=new Paint();
	private boolean runflag=true;
	private static boolean stopflag=false;
	public MySurfaceView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}
	public MySurfaceView(Context context) {
		this(context, null);
	}
	public MySurfaceView(Context context, AttributeSet attrs) {
		this(context, attrs, 0);
		holder=this.getHolder();
		holder.addCallback(this);
	}
	public void surfaceCreated(SurfaceHolder holder) {
		Thread t=new Thread(this);
		t.start();
	}
	public void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {	
	}
	public void surfaceDestroyed(SurfaceHolder holder) {
		runflag=false;
	}
	public void run() {
		while(runflag){
			if(stopflag)continue;
			try {
				Thread.sleep(10);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			Canvas canvas=null;
			try {
				canvas=holder.lockCanvas();
				paint.setStyle(Style.FILL);
				paint.setColor(Color.BLACK);
				canvas.drawRect(0,0, this.getWidth(), this.getHeight(), paint);
				
				for(int i=0;i<list.size();i++){
					list.get(i).draw(canvas);
					list.get(i).move();
				}
				
			} catch (Exception e) {
				// TODO: handle exception
			}finally{
				//画布画完后要释放
				if(runflag){
					holder.unlockCanvasAndPost(canvas);
				}
			}
			
		}
	}


}

 

 

7.获取权限

 

如果我们想使用一些系统服务,那么久要获取相应的权限,这里方法很简单,在主配置文件里加一行权限的获取就行了

?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.foolgame"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    <application>
</application>
<uses-permission android:name="android.permission.VIBRATE"/>

 要注意的是,请写在application之外,上面是我写的获取震动权限,不写的话,调用震动方法时就会报错

 

分享到:
评论

相关推荐

    android activity详细总结

    一篇关于android activity的详细总结

    Android activity intent 相关Java源代码

    本资源包含的是关于Android Activity与Intent相关的Java源代码,非常适合学习Android开发的同学参考。 首先,我们来看Activity。Activity是一个具有用户界面的单个屏幕,它负责处理用户交互和展示UI。在Java源码中...

    Android activity-alias别名的使用

    在Android开发中,Activity是应用程序的基本组件之一,用于呈现用户界面并与用户交互。然而,有时候开发者可能需要在不改变原始Activity的基础上实现不同的功能或者提供不同的入口,这时Android系统提供的Activity...

    android 运算器 不同activity间的跳转

    以上就是关于Android Activity间跳转和常用控件使用的一些基础知识。理解并熟练掌握这些内容对于开发Android应用至关重要。在实际项目中,还需要考虑其他因素,比如Activity的栈管理(back stack)、Activity的配置...

    android Activity布局初步(二)- 嵌套布局

    在Android开发中,Activity是应用程序的基本构建块,它负责与用户进行交互并展示UI。本篇文章将深入探讨如何在Activity中使用嵌套布局,这是创建复杂用户界面的关键技术。我们将结合源码分析和实用工具来理解这个...

    安卓动画效果相关-activity切换特效.rar

    这个压缩包"安卓动画效果相关-activity切换特效.rar"包含了关于如何实现Android应用中Activity之间过渡的动画效果的相关资源。虽然由于文件数量众多,无法逐一验证其可用性,但它们提供了学习和参考的价值。 在...

    android Activity 设置背景透明

    在Android开发中,Activity是应用程序的基本构建块,用于展示用户界面和处理用户交互。当我们希望Activity的背景变得透明,以实现如悬浮窗、半透明过渡效果等设计需求时,就需要对Activity进行一些特殊的配置。本篇...

    android activity右进右出动画

    在Android开发中,Activity是应用程序的基本组件,用于承载用户界面。Activity之间的切换动画可以极大地提升用户体验,"android activity右进右出动画"就是一个常见的应用场景,它使得应用在切换时具有更加自然、...

    Android Activity学习笔记

    Android Activity学习笔记 Android Activity是Android系统中最基本的组件之一,它负责处理用户交互和显示用户界面。本文将深入讲解Activity的生命周期、Activity之间的数据交互、Activity启动模式、Task和BackStack...

    Android Activity生命周期

    Android Activity 生命周期 Android Activity 生命周期是指 Activity 从创建到销毁的整个过程,该过程中会经历多个状态变化,每个状态变化都会触发相应的回调方法。理解 Activity 生命周期是 Android 开发的基础。 ...

    Android Activity跳转和listview的使用

    在Android应用开发中,Activity是应用程序的基本构建块,它代表用户界面的一个屏幕。理解Activity的跳转和ListView的使用是Android开发中至关重要的技能。在这个主题中,我们将深入探讨如何通过Intent和Bundle实现...

    android Activity 详述 demo

    在Android应用开发中,Activity是核心组件之一,它代表了用户界面的一个屏幕或者一个交互窗口。这个"android Activity 详述 demo"旨在深入探讨Activity的工作原理及其在实际应用中的使用方式。通过链接给出的博客...

    Android 中从activity1跳转到activity2再回到activity所经历的生命周期

    ### Android 中从Activity1跳转到Activity2再回到Activity1所经历的生命周期 在Android开发过程中,理解Activity的生命周期对于管理界面状态、处理用户交互以及响应系统事件至关重要。本文将详细解析从一个Activity...

    Android使用Activity用作弹出式对话框

    在Android开发中,有时我们需要创建一个弹出式对话框来与用户进行交互,但不同于常见的`Dialog`类,我们可以利用`Activity`来实现这一功能。这种方式适用于需要更复杂交互或者自定义布局的情况。本文将详细讲解如何...

    Android利用Intent启动和关闭Activity

    【Android Intent 启动和关闭Activity】 在Android应用程序开发中,Intent是连接各个组件(如Activity、Service等)的关键桥梁,主要用于启动和关闭Activity。Intent不仅能够启动一个新的Activity,还能在Activity...

    android activity的一些特效

    在Android开发中,Activity是应用程序的基本构建块,它代表了一个用户可见并与其交互的屏幕。Activity可以展示用户界面,处理用户输入,并与系统服务或其它应用程序进行交互。本压缩包"Activityzhuanghuantexiao...

    Android父Activity获取子Activity返回信息demo

    在Android应用开发中,Activity是构成应用程序的基本组件,它代表用户界面的一个屏幕。有时,我们需要在子Activity执行某些操作后将结果返回给父Activity。这个过程通常涉及到Intent的使用,Intent不仅用于启动新的...

    Android 悬浮Activity ( Dialog风格)

    关于压缩包内的`CameraDemo`,这可能是一个演示如何在悬浮Activity中使用相机的例子。在悬浮Activity中集成相机功能需要处理权限、初始化Camera对象、创建预览SurfaceView以及处理拍照事件。首先,在AndroidManifest...

    android Activity之间数据的回传

    ### Android Activity之间数据的回传 #### 一、引言 在Android开发中,Activity间的交互是非常常见的需求。特别是当我们需要从一个Activity跳转到另一个Activity,并希望在完成某些操作后能够将数据回传给原始...

    android Activity切换动画多种方式

    在Android开发中,Activity是应用程序的基本构建块,用于展示用户界面和处理用户交互。Activity间的切换动画不仅可以提升用户体验,还能让应用更具个性化和吸引力。本文将深入探讨多种Activity切换动画的实现方法,...

Global site tag (gtag.js) - Google Analytics