Big Bug Ban

兴趣 践行 创新

Android开发日志 制作一个欢迎界面

 

一个友好的欢迎界面对用户来说体验会非常棒的

下面我讲用一个实例 讲解schoolpaper的欢迎界面的制作

最终的目的是有一个进度条 还有一个tips变化

1.首先 建立一个android工程

2.制作一个界面  我使用的droiddraw来制作的xml

然后你还需要一个图,作为整个的背景图

下面是我生成的xml   只能用于HVGA屏幕的哈~

 <?xml version="1.0" encoding="UTF-8"?>

<!--
    Document   : main.xml
    Created on : 2010年10月19日, 上午8:47
    Author     : princehaku
    Description:
        欢迎界面的布局
-->
<AbsoluteLayout
android:background="@drawable/welcome"
android:id="@+id/widget39"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<TextView
android:id="@+id/tips"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
    android:text="please wait"
android:gravity="center"
android:layout_x="0px"
android:layout_y="329px"
>
</TextView>
<ProgressBar
android:id="@+id/loading"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="160px"
android:progress="100"
android:layout_height="wrap_content"
android:layout_x="80px"
android:layout_gravity="center_vertical"
android:layout_y="257px"
>
</ProgressBar>
</AbsoluteLayout>

 

注意其中的android:background=”@drawable/welcome”

需要找一个图 放在res drawble 命名为welcome.png的图片 作为背景图

3.开始敲代码吧..

首先需要在MainActivity 加入三个静态成员
/**进度条的进度
*
*/
static int idx=0;
/**进度条
*
*/
protected ProgressBar myProgressBar;
/**提示文本
*
*/
protected TextView tips;
还有一个,我们的Handler~

private Handler process=new HandlerWelcomeProc(this);
之所以要加这个 是为了在进程里面处理主界面的变化,这个android的进程安全的机制有关

这个类的内容如下

 /*  Copyright 2010 princehaku
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 *  Created on : 2010-11-8, 14:10:39
 *  Author     : princehaku
 */

package net.techest.lamp;

import android.app.Activity;
import android.os.Handler;
import android.os.Message;

/**处理欢迎界面的proc消息
 *
 * @author princehaku
 */
 class HandlerWelcomeProc extends Handler {

        private static Activity res;

        public HandlerWelcomeProc(Activity aThis) {
             this.res = aThis;
        }
        @Override
        public void handleMessage(Message msg) {
            int prc = msg.what;
            if(prc > 0){
                ((MainActivity)res).tips.setText("Tips: "+res.getString(R.string.welcometips1));
            }
            if(prc > 30){
                ((MainActivity)res).tips.setText("Tips: "+res.getString(R.string.welcometips2));
            }
            if(prc > 60){
                ((MainActivity)res).tips.setText("Tips: "+res.getString(R.string.welcometips3));
            }
            if (prc > 100) {
                /*启动主界面
                Intent intent = new Intent();
                intent.setClass(res, MainActivity.class);
                res.startActivity(intent);*/
                if(((MainActivity)res).tr!=null){
                    ((MainActivity)res).tr.cancel();
                }
                //改变布局
                ((MainActivity)res).setContentView(R.layout.main);

                return;
            }
            ((MainActivity)res).myProgressBar.setProgress(prc);
        }
    }

然后回到我们的主界面MainActivity写上我们的初始化语句

 

  @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.welcome);
        tips=(TextView)findViewById(R.id.tips);
        myProgressBar=(ProgressBar)findViewById(R.id.loading);
        //持续滚动
        tr=new Timer();
        tr.schedule(new TimerTask(){
            @Override
            public void run() {
                MainActivity.idx++;
                process.sendEmptyMessage(MainActivity.idx);
            }
        }, 0,200);

    }

 

大功告成

运行结果如下

最后源代码在这里,仅供参考  [download id=”7″] 24.3kb

 

Written by princehaku

3月 10th, 2011 at 9:36 上午

Posted in Android

Tagged with

with one comment

One Response to 'Android开发日志 制作一个欢迎界面'

Subscribe to comments with RSS or TrackBack to 'Android开发日志 制作一个欢迎界面'.

  1. 您好,如果按照这样的话,我在MainActivity里有个Button的按键响应,本来是没问题的,加上欢迎界面以后就会崩溃,把按键响应取消掉,欢迎界面正常。。 怎么回事啊?

    路少

    3 2月 12 at 8:14 下午

Leave a Reply