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
您好,如果按照这样的话,我在MainActivity里有个Button的按键响应,本来是没问题的,加上欢迎界面以后就会崩溃,把按键响应取消掉,欢迎界面正常。。 怎么回事啊?
路少
3 2月 12 at 8:14 下午