该布局内容如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center">
<ImageView
android:id="@+id/img1"
android:src="@drawable/splash"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
</ImageView>
</LinearLayout>
从上述代码中可以看出,界面布局采用的是线性布局(在后面会专门介绍Android中的各种界面布局的),并且子控件仅仅是ImageView用来显示图片。如果你在运行时发现图片偏左偏右或者被拉伸等问题,还请仔细参考下上面代码中的一些布局设置细节,如LinearLayout的gravity属性设置为center以及宽度和高度设置为撑满父容器的模式,ImageView控件的宽度与高度设置为适合子控件模式,并且其数据源通过src属性绑定到drawable
4、编写闪屏界面的逻辑代码:
逻辑代码如下:
package cnblogs.com;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;public class SplashyDemo extends Activity { private long m_dwSplashTime=3000;
private boolean m_bPaused=false;
private boolean m_bSplashActive=true; /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash); Thread splashTimer=new Thread()
{
public void run(){
try{
//wait loop
long ms=0;
while(m_bSplashActive && ms<m_dwSplashTime){
sleep(100); if(!m_bPaused)
ms+=100;
} startActivity(new Intent("com.google.app.splashy.CLEARSPLASH"));
}
catch(Exception ex){
Log.e("Splash",ex.getMessage());
}
finally{
finish();
}
}
};
splashTimer.start();
} @Override
protected void onPause() {
super.onPause();
m_bPaused=true;
} @Override
protected void onResume() {
super.onResume();
m_bPaused=false;
} @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
super.onKeyDown(keyCode, event);
switch(keyCode){
case KeyEvent.KEYCODE_MENU:
m_bSplashActive=false;
break;
case KeyEvent.KEYCODE_BACK:
/*两种退出方法*/
/* System.exit(0);*/
/* android.os.Process.killProcess(android.os.Process.myPid());*/
android.os.Process.killProcess(android.os.Process.myPid());
break;
default:
break;
}
return true;
}
}
以上代码参看的是Android Essentials一书, 笔者看的是英文版,对于一些英语不太好的朋友,笔者觉的代为分析下这个示例还是有些意义的。
1)变量解释:
? m_dwSplashTime:long 类型,为闪屏界面停留的时间,这儿设置为3000也就是3秒
? m_Paused: bool 类型,设置该变量可以使得程序暂停在闪屏界面
? m_bSplashActive:bool类型,设置该变量可以跳过闪屏,从而快速竟如主程序界面
2)程序结构解释:
? SplashyDemo继承自Activity,且是程序启动的第一个界面(查看),所以要实现闪屏,我们需要开启一个线程,以便在3秒钟之后进入主界面。这些主要有一个while循环来实现
? 在3秒钟结束或者用户选择跳过闪屏后,程序会调用startActivity函数来跳到主界面,传入该函数的参数是一个"com.google.app.splashy.CLEARSPLASH"的intent对象。至于什么是Intent对象,这儿简单的介绍下。Intent对象主要是多个Activity对象之间传递信息、交流的一个对象。并且,当startActivity函数被
调用的时候,Android会搜索所有的描述性文件(manifests文件)直到找到intent Action是"com.google.app.splashy.CLEARSPLASH"的节点。如工程中AndroidManifest.xml文件中部分内容如下:
<activity android:name=".MainMenu" android:label="@string/main_name">
<intent-filter>
<action android:name="com.google.app.splashy.CLEARSPLASH"></action>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</activity>
5、 重写下SplashyDmeo中OnPaused和OnResume函数
当程序Pause或者Resume的时候,再稍微做下处理:
1) 当程序Pause时候,设置m_paused=true,从而使得程序暂停
2) 当程序Resume的时候,要设置m_paused=false,从而使得程序恢复正常运行
6、 键盘事件处理
处理键盘事件只需重写下继承自Activity类的onKeyDown函数即可,从示例程序中可以看出,当我们按下Menu键的话,直接跳过闪屏进入主界面;若按 下Back键的话,则直接退出主程序。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center">
<ImageView
android:id="@+id/img1"
android:src="@drawable/splash"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
</ImageView>
</LinearLayout>
从上述代码中可以看出,界面布局采用的是线性布局(在后面会专门介绍Android中的各种界面布局的),并且子控件仅仅是ImageView用来显示图片。如果你在运行时发现图片偏左偏右或者被拉伸等问题,还请仔细参考下上面代码中的一些布局设置细节,如LinearLayout的gravity属性设置为center以及宽度和高度设置为撑满父容器的模式,ImageView控件的宽度与高度设置为适合子控件模式,并且其数据源通过src属性绑定到drawable
4、编写闪屏界面的逻辑代码:
逻辑代码如下:
package cnblogs.com;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;public class SplashyDemo extends Activity { private long m_dwSplashTime=3000;
private boolean m_bPaused=false;
private boolean m_bSplashActive=true; /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash); Thread splashTimer=new Thread()
{
public void run(){
try{
//wait loop
long ms=0;
while(m_bSplashActive && ms<m_dwSplashTime){
sleep(100); if(!m_bPaused)
ms+=100;
} startActivity(new Intent("com.google.app.splashy.CLEARSPLASH"));
}
catch(Exception ex){
Log.e("Splash",ex.getMessage());
}
finally{
finish();
}
}
};
splashTimer.start();
} @Override
protected void onPause() {
super.onPause();
m_bPaused=true;
} @Override
protected void onResume() {
super.onResume();
m_bPaused=false;
} @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
super.onKeyDown(keyCode, event);
switch(keyCode){
case KeyEvent.KEYCODE_MENU:
m_bSplashActive=false;
break;
case KeyEvent.KEYCODE_BACK:
/*两种退出方法*/
/* System.exit(0);*/
/* android.os.Process.killProcess(android.os.Process.myPid());*/
android.os.Process.killProcess(android.os.Process.myPid());
break;
default:
break;
}
return true;
}
}
以上代码参看的是Android Essentials一书, 笔者看的是英文版,对于一些英语不太好的朋友,笔者觉的代为分析下这个示例还是有些意义的。
1)变量解释:
? m_dwSplashTime:long 类型,为闪屏界面停留的时间,这儿设置为3000也就是3秒
? m_Paused: bool 类型,设置该变量可以使得程序暂停在闪屏界面
? m_bSplashActive:bool类型,设置该变量可以跳过闪屏,从而快速竟如主程序界面
2)程序结构解释:
? SplashyDemo继承自Activity,且是程序启动的第一个界面(查看),所以要实现闪屏,我们需要开启一个线程,以便在3秒钟之后进入主界面。这些主要有一个while循环来实现
? 在3秒钟结束或者用户选择跳过闪屏后,程序会调用startActivity函数来跳到主界面,传入该函数的参数是一个"com.google.app.splashy.CLEARSPLASH"的intent对象。至于什么是Intent对象,这儿简单的介绍下。Intent对象主要是多个Activity对象之间传递信息、交流的一个对象。并且,当startActivity函数被
调用的时候,Android会搜索所有的描述性文件(manifests文件)直到找到intent Action是"com.google.app.splashy.CLEARSPLASH"的节点。如工程中AndroidManifest.xml文件中部分内容如下:
<activity android:name=".MainMenu" android:label="@string/main_name">
<intent-filter>
<action android:name="com.google.app.splashy.CLEARSPLASH"></action>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</activity>
5、 重写下SplashyDmeo中OnPaused和OnResume函数
当程序Pause或者Resume的时候,再稍微做下处理:
1) 当程序Pause时候,设置m_paused=true,从而使得程序暂停
2) 当程序Resume的时候,要设置m_paused=false,从而使得程序恢复正常运行
6、 键盘事件处理
处理键盘事件只需重写下继承自Activity类的onKeyDown函数即可,从示例程序中可以看出,当我们按下Menu键的话,直接跳过闪屏进入主界面;若按 下Back键的话,则直接退出主程序。
解决方案 »
- (android编程)在adt中启动模拟器,并且运行新建好的项目console出现情况如下。项目没在在模拟器中显示。
- 请问大家多线程操作sqlite数据库时如何处理的呢?
- 新人求指导,想学安卓开发,应该如何开始.
- 在创建Android工程时,AndroidManifest.xml文件出错,最后多了</manifest>
- Android相机预览时,屏幕背景有个矩形框,或者有几个关键点 怎么弄?
- request time failed问题,求解啊
- Android中短信接收优先权问题!
- EditText问题?……在线等待
- 谁提供android 开发包下载地址和要下载哪些软件
- 请问从0开始自学Andriod的APP需要多久?
- 求教!!!如何在Android中将图片转化为矩阵,并用数组表示?
- android中回调函数是怎么调用的
后者重新运行下