接触android能有快一年了吧,做过的应用确是寥寥无几,只能说,这个公司管理比较混乱,要么没活可做,要么一来就来急活……

这次据说来了个大项目,让尽快完成,结果呢?

画面部分给了只有2/3不到吧(按照以往在这个公司干活的经历来说实属正常,以前我还干过两个完全没式样,没画面的活……亲娘誒,要命阿……都的自己揣摩阿……)

式样书就给了三个画面的……一共有10多个画面,还没仔细好好“揣摩”保守估计,所以,完成这三个式样书之后我就又没事做了,这也不能这么闲着,只能看看那些没给式样书的画面,有没有什么可以研究的了,于是乎,就研究起来这个了……

ActivityGroup

画面如此这般

我的第一反应就是用TabActivity,但是,TabActivity可能弄不成这个样子的,她的定制空间太小了,后来在网上百无聊赖的晃悠,突然让我发现原来还有ActivityGroup可以用……(以前真的不知道阿)

于是非常Happy的就去找ActivityGroup制作类似Tab效果的文章比如这个

http://blog.csdn.net/hellogv/archive/2010/12/06/6057174.aspx

正当我非常happy的打算crtl+c的时候问题来了,我们敬爱的美工同志,给我的tab页面的图片竟然是连在一起的……

难道他压根就想让我实现个假的tab页面,所以每个tab页的tab标题部分他都给画了一遍???

比如:

   

算了,这样也能省些事儿,就把这一块当作背景,在其上面添加了一个TextView当作捕获的焦点,然后通过onTouch事件来控制点选的是那一部分区域……就这样一个别别扭扭的自定义tab就算勉强完成了……

新手上路,代码不好,轻拍,欢迎批评指点~~~~~~

代码如下

tablayout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:baselineAligned="true" android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical">
<LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="90px" android:background="@drawable/tab01" android:paddingTop="10px" android:paddingLeft="10px" android:paddingRight="10px" >
<TextView android:text="----------" android:id="@+id/textView1" android:layout_height="match_parent" android:layout_width="190px" android:textSize="25sp" android:paddingRight="15px" android:paddingTop="10px"></TextView>
<TextView android:text="----------" android:id="@+id/textView2" android:layout_width="190px" android:layout_height="match_parent" android:textSize="25sp" android:paddingRight="15px" android:paddingTop="10px"></TextView>
<TextView android:text="----------" android:id="@+id/textView3" android:layout_width="190px" android:layout_height="match_parent" android:textSize="25sp" android:paddingRight="15px" android:paddingTop="10px"></TextView>
<TextView android:text="----------" android:id="@+id/textView4" android:layout_width="190px" android:layout_height="match_parent" android:textSize="25sp" android:paddingRight="15px" android:paddingTop="10px"></TextView>
<TextView android:text="----------" android:id="@+id/textView5" android:layout_width="190px" android:layout_height="match_parent" android:textSize="25sp" android:paddingTop="10px"></TextView>
</LinearLayout>
<LinearLayout android:id="@+id/linearLayout3" android:layout_width="match_parent" android:layout_height="50px" android:background="@drawable/title_bar">
<TextView android:text="@string/TextView14Txt" android:id="@+id/textView1" android:layout_height="match_parent" android:layout_width="match_parent" android:textSize="15sp" android:paddingRight="10px" android:paddingTop="5px" android:textColor="#ffffff"></TextView>
</LinearLayout>

<ScrollView android:id="@+id/scrollView1" android:layout_height="fill_parent" android:layout_width="match_parent" android:background="#ffffff">

</ScrollView>

</LinearLayout>

java代码

package com.esukei.activity;

import android.app.ActivityGroup;
import android.app.LocalActivityManager;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;

public class MainTabMenu extends ActivityGroup {
private TextView tabTitle1;
private TextView tabTitle2;
private TextView tabTitle3;
private TextView tabTitle4;
private TextView tabTitle5;

private LocalActivityManager mActivityManager = null;
private ScrollView container;
private LinearLayout tabLayout;
static final private int MENU_LIST1 = Menu.FIRST ;
static final private int MENU_LIST2 = Menu.FIRST + 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.tablayout);
drawLayout();
setAction();

}
public void drawLayout(){
tabLayout=(LinearLayout)this.findViewById(R.id.linearLayout1);
tabLayout.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.tab01));
tabTitle1=(TextView) this.findViewById(R.id.textView1);
tabTitle2=(TextView) this.findViewById(R.id.textView2);
tabTitle3=(TextView) this.findViewById(R.id.textView3);
tabTitle4=(TextView) this.findViewById(R.id.textView4);
tabTitle5=(TextView) this.findViewById(R.id.textView5);

container = (ScrollView) findViewById(R.id.scrollView1);

mActivityManager = getLocalActivityManager();
container.removeAllViews();
container.addView(getLocalActivityManager().startActivity(
"Module1",
new Intent(MainTabMenu.this, StatusActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView());

}
public void setAction(){

tabTitle1.setOnTouchListener(new OnTouchListener() {

public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
tabLayout.setBackgroundDrawable(MainTabMenu.this.getResources().getDrawable(R.drawable.tab01));
container.removeAllViews();
container.addView(getLocalActivityManager().startActivity(
"Module1",
new Intent(MainTabMenu.this, StatusActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView());
}

if (event.getAction() == MotionEvent.ACTION_UP) {

}
return true;
}});
tabTitle2.setOnTouchListener(new OnTouchListener() {

public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
tabLayout.setBackgroundDrawable(MainTabMenu.this.getResources().getDrawable(R.drawable.tab02));

}

if (event.getAction() == MotionEvent.ACTION_UP) {

container.removeAllViews();
container.addView(getLocalActivityManager().startActivity(
"Module2",
new Intent(MainTabMenu.this, WatchActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView());

}
return true;
}});
tabTitle3.setOnTouchListener(new OnTouchListener() {

public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
tabLayout.setBackgroundDrawable(MainTabMenu.this.getResources().getDrawable(R.drawable.tab03));

}

if (event.getAction() == MotionEvent.ACTION_UP) {

}
return true;
}});
tabTitle4.setOnTouchListener(new OnTouchListener() {

public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
tabLayout.setBackgroundDrawable(MainTabMenu.this.getResources().getDrawable(R.drawable.tab04));

}

if (event.getAction() == MotionEvent.ACTION_UP) {

}
return true;
}});
tabTitle5.setOnTouchListener(new OnTouchListener() {

public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
tabLayout.setBackgroundDrawable(MainTabMenu.this.getResources().getDrawable(R.drawable.tab05));

}

if (event.getAction() == MotionEvent.ACTION_UP) {

}
return true;
}});

}

这个是公司的项目了,不能给出源码,只能稍微给出一些关键性的代码,然后呢就是这个东西也是相当不成熟了,还有很多东西我还没搞明白,比如说子Activity里的menu怎么调出,还有在这个ActivityGroup的基础上怎么实现子Activity怎么跳转到子Activity,这个有待研究…………

转载于:https://www.cnblogs.com/mmll/archive/2011/04/29/2032629.html

【android】ActivityGroup初体验相关推荐

  1. [Android Studio] 初体验

    [Android Studio] 初体验 本人刚开始接触移动开发方面的知识,在很多方面都感觉寸步难行,移动开发这门课程应该是在我一年后学校才会开设,而移动开发所用到的java也是在我下个学期才开始正式 ...

  2. 使用Kotlin开发Android应用初体验

    使用Kotlin开发Android应用初体验 昨晚,最近一届的谷歌IO大会正式将Kotlin确定为了官方开发语言,作为一名Android开发鸟,怎么能不及时尝尝鲜呢? Kotlin的简要介绍 在开发之 ...

  3. Android开发初体验

    Android开发初体验 本次开发的应用能提出一道道问题,用户点击TRUE或者FALSE来回答问题,该应用则即时做出反馈. 一·该应用由一个activity和一个布局(layout)组成,我们先创建一 ...

  4. 一加6升级android p,一加6手机升级Android P初体验:系统更智能、操作更流畅!

    原标题:一加6手机升级Android P初体验:系统更智能.操作更流畅! 8月7日谷歌发布正式版Android P后,8月15日一加手机领先业界最先放出了一加6的Android P公测版.当然,这极其 ...

  5. Android RecyclerView初体验

    很早之前就听说过RecyclerView这个组件了,但一直很忙没时间学习.趁着周末,就花了一天时间来学习RecyclerView. 准备工作 在Android Studio里新建一个Android项目 ...

  6. Android Studio 初体验

    Google在I/O2013大会上发布了Android新的开发工具Android Studio,趁周末时间做了一下尝试.有需要的可以 在http://developer.android.com/sdk ...

  7. Android TTS 初体验

    http://bbs.apkok.com/thread-1893-1-1.html 一.基础知识 TextToSpeech 简称TTS,称为语音合成,是Android 从1.6版本开始支持的新功能,能 ...

  8. Android开发初体验之百度地图开发(3)

    在前面文章我分享了如何开始初步的使用百度地图API以及地图搜索功能,这次我将分享如何在百度地图上设置marker,以及info窗口,这次也主要是参考了鸿洋老师的博客,大家想继续学习的话也可以关注一下鸿 ...

  9. GitHub与Android安装初体验(md版本)

    说明: 第一次使用GitHub,安装时难免有些不如人意的地方,写下此文记录心路历程. 首先了解阅读有关的东西,GitHub与Android的作用及用途.配置的环境等,先参考老师发的材料: http:/ ...

最新文章

  1. 如何使用Nodejs爬虫看漫画
  2. liunx使用ssh免密登录
  3. Spring Cloud Alibaba【Nacos 服务治理】 高可用保证:Nacos 如何有效构建注册中心集群
  4. Redux源码浅析系列(二):`combineReducer`
  5. [导入]ASP.NET 2.0 读取配置文件[INI](示例代码下载)
  6. matlab提excel文字,matlab读取excel文字
  7. effective C++ 读书笔记(0-2)
  8. zabbix的安装监控windows,linux操作流程
  9. Linux内核开发之异步通知与异步I/O《来自linux设备开发详解》
  10. ALAsset 循环获取图片(Assets Library Framework)
  11. 如何让Jython自动加载一个Jar包
  12. FineReport新增多项目甘特图示例及操作
  13. centos8平台用NetworkManager/nmcli管理网络
  14. matplotlib fontdict 字体设置
  15. ttk.treeview鼠标悬浮文字_电竞新选择,罗技G键盘、鼠标、耳机三件套给力体验...
  16. quartz mysql死锁问题_Quartz 并发
  17. Webpack 5: The ‘compilation‘ argument must be an instance of Compilation
  18. phpmywind 数据库 上传服务器后乱码
  19. 收款码在线生成系统源码 无限制
  20. 杜教筛 (包括线筛) 莫比乌斯函数前缀和 欧拉函数前缀和 因数和函数前缀和 因子个数前缀和 ( 分析 )...

热门文章

  1. erp开发和java开发区别_Java程序员求职必学:Spring boot学习指南!
  2. android创建构建方法,Android 应用程序构建实战+原理精讲
  3. linux删除权限命令,管理使用者和设立权限的命令
  4. python re正则查找_python正则表达式 - re
  5. mysql手动启动1067错误_解决MySQL启动时万恶的1067错误(转)
  6. ginapi服务器性能,gin框架构建Api之:环境配置和路由
  7. linux 触摸屏测试源码_Linux触摸屏驱动
  8. python私有成员和保护成员,喜大普奔!Maya 2022来了?!
  9. python选课系统代码_python模拟选课系统
  10. parallelstream启动的线程数_高并发与多线程网络学习笔记(三)线程组和线程池