【android】ActivityGroup初体验
接触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
<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代码
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初体验相关推荐
- [Android Studio] 初体验
[Android Studio] 初体验 本人刚开始接触移动开发方面的知识,在很多方面都感觉寸步难行,移动开发这门课程应该是在我一年后学校才会开设,而移动开发所用到的java也是在我下个学期才开始正式 ...
- 使用Kotlin开发Android应用初体验
使用Kotlin开发Android应用初体验 昨晚,最近一届的谷歌IO大会正式将Kotlin确定为了官方开发语言,作为一名Android开发鸟,怎么能不及时尝尝鲜呢? Kotlin的简要介绍 在开发之 ...
- Android开发初体验
Android开发初体验 本次开发的应用能提出一道道问题,用户点击TRUE或者FALSE来回答问题,该应用则即时做出反馈. 一·该应用由一个activity和一个布局(layout)组成,我们先创建一 ...
- 一加6升级android p,一加6手机升级Android P初体验:系统更智能、操作更流畅!
原标题:一加6手机升级Android P初体验:系统更智能.操作更流畅! 8月7日谷歌发布正式版Android P后,8月15日一加手机领先业界最先放出了一加6的Android P公测版.当然,这极其 ...
- Android RecyclerView初体验
很早之前就听说过RecyclerView这个组件了,但一直很忙没时间学习.趁着周末,就花了一天时间来学习RecyclerView. 准备工作 在Android Studio里新建一个Android项目 ...
- Android Studio 初体验
Google在I/O2013大会上发布了Android新的开发工具Android Studio,趁周末时间做了一下尝试.有需要的可以 在http://developer.android.com/sdk ...
- Android TTS 初体验
http://bbs.apkok.com/thread-1893-1-1.html 一.基础知识 TextToSpeech 简称TTS,称为语音合成,是Android 从1.6版本开始支持的新功能,能 ...
- Android开发初体验之百度地图开发(3)
在前面文章我分享了如何开始初步的使用百度地图API以及地图搜索功能,这次我将分享如何在百度地图上设置marker,以及info窗口,这次也主要是参考了鸿洋老师的博客,大家想继续学习的话也可以关注一下鸿 ...
- GitHub与Android安装初体验(md版本)
说明: 第一次使用GitHub,安装时难免有些不如人意的地方,写下此文记录心路历程. 首先了解阅读有关的东西,GitHub与Android的作用及用途.配置的环境等,先参考老师发的材料: http:/ ...
最新文章
- 如何使用Nodejs爬虫看漫画
- liunx使用ssh免密登录
- Spring Cloud Alibaba【Nacos 服务治理】 高可用保证:Nacos 如何有效构建注册中心集群
- Redux源码浅析系列(二):`combineReducer`
- [导入]ASP.NET 2.0 读取配置文件[INI](示例代码下载)
- matlab提excel文字,matlab读取excel文字
- effective C++ 读书笔记(0-2)
- zabbix的安装监控windows,linux操作流程
- Linux内核开发之异步通知与异步I/O《来自linux设备开发详解》
- ALAsset 循环获取图片(Assets Library Framework)
- 如何让Jython自动加载一个Jar包
- FineReport新增多项目甘特图示例及操作
- centos8平台用NetworkManager/nmcli管理网络
- matplotlib fontdict 字体设置
- ttk.treeview鼠标悬浮文字_电竞新选择,罗技G键盘、鼠标、耳机三件套给力体验...
- quartz mysql死锁问题_Quartz 并发
- Webpack 5: The ‘compilation‘ argument must be an instance of Compilation
- phpmywind 数据库 上传服务器后乱码
- 收款码在线生成系统源码 无限制
- 杜教筛 (包括线筛) 莫比乌斯函数前缀和 欧拉函数前缀和 因数和函数前缀和 因子个数前缀和 ( 分析 )...
热门文章
- erp开发和java开发区别_Java程序员求职必学:Spring boot学习指南!
- android创建构建方法,Android 应用程序构建实战+原理精讲
- linux删除权限命令,管理使用者和设立权限的命令
- python re正则查找_python正则表达式 - re
- mysql手动启动1067错误_解决MySQL启动时万恶的1067错误(转)
- ginapi服务器性能,gin框架构建Api之:环境配置和路由
- linux 触摸屏测试源码_Linux触摸屏驱动
- python私有成员和保护成员,喜大普奔!Maya 2022来了?!
- python选课系统代码_python模拟选课系统
- parallelstream启动的线程数_高并发与多线程网络学习笔记(三)线程组和线程池