旅游类APP-Android模块分析

2.Android模块分析

2.1系统框架

旅游类APP-Android模块分析_第1张图片

2.2Android APP启动流程 AndroidManifest.xml

旅游类APP-Android模块分析_第2张图片

2.3网络交互

旅游类APP-Android模块分析_第3张图片

2.4开发中的知识点

1.启动时使用引导页使用渐变效果:

protected void onDraw(Canvas canvas) {
    // Log.d("ly", "onDraw");
    // 清屏
    canvas.drawColor(Color.WHITE);
    // 创建画笔对象
    Paint p = new Paint();
    // 设置画笔对象的透明度为当前透明度取值
    p.setAlpha(alpha);
    // 在视图上利用画笔绘制Logo图像
    Rect src = new Rect(0, 0, logo.getWidth(), logo.getHeight());

    WindowManager wm = (WindowManager) getContext()
            .getSystemService(Context.WINDOW_SERVICE);

    int width = wm.getDefaultDisplay().getWidth();
    int height = wm.getDefaultDisplay().getHeight();
    Rect dst = new Rect(0, 0, width, height);
    canvas.drawBitmap(logo, src, dst, p);

}

public void repaint(int alpha) {
    this.alpha = alpha;
    // 抛出重绘事件
    invalidate();
}

外部启动线程每隔100ms调用repaint函数,即可实现渐变效果。

2.TabActivity与事件分发

public boolean dispatchKeyEvent(KeyEvent event) {
    Log.d("ly", "TabHostAty dispatchKeyEvent " + event.getKeyCode());
    if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
        // do something
        if (System.currentTimeMillis() - mFirstTime > 2000) {
            Toast.makeText(this, "再次点击退出程序", Toast.LENGTH_SHORT).show();
            mFirstTime = System.currentTimeMillis();
            return true;
        }
    }
    return super.dispatchKeyEvent(event);
}

由于TabActivity没有焦点,焦点在子Activity中,因此onKeyDown和onBackPressed只有在子Activity中才会响应,这里使用dispatchKeyEvent拦截分发事件处理。

代码地址 https://github.com/wWX152939/lvyou

旅游类APP-环境搭建 http://blog.csdn.net/qq4551091/article/details/74356878

你可能感兴趣的:(android项目)