Android高级界面组件的学习(二)

简介: 在上个博客的基础上我继续巩固LayoutInflater的使用,同时介绍一下Tabhost。我们在很多地方会看到手机界面的顶部或底部有一些可切换的图标,这些图标的监听事件是会让界面进行平滑跳转的,比如微信下面的四个小图标:微信,通讯录,发现,我,这个是怎么实现的呢?我虽然不知道微信是不是用Tabhost实现的,但是Tabhost无疑是一种可选的方式。

在上个博客的基础上我继续巩固LayoutInflater的使用,同时介绍一下Tabhost。我们在很多地方会看到手机界面的顶部或底部有一些可切换的图标,这些图标的监听事件是会让界面进行平滑跳转的,比如微信下面的四个小图标:微信,通讯录,发现,我,这个是怎么实现的呢?我虽然不知道微信是不是用Tabhost实现的,但是Tabhost无疑是一种可选的方式。下面我就通过代码来介绍一下Tabhost,以及它的实现类似微信的效果。

首先我们要获得TabHost和TabhostWidget,也就是下面这四行代码(非常重要):

private TabHost tabhost; // 标签组
private TabWidget tabWidget;
tabhost = getTabHost(); 
tabWidget = getTabWidget();
然后我们就可以利用LayoutInflater来动态加载标签对应的界面布局了,其中的R.layout.tabhost1对应的就是点击标签1时的标签布局显示,而同理R.layout.tabhost2就是点击标签1时的标签布局显示,也就是最下方的图标。我们把这些布局文件传递给View对象,同时让他们对应java文件,即Tabhost_1.class和Tabhost_2.class,制作成TabSpec对象,添加到TabHost中。为了区分,Tabhost_1的界面背景为黑色,Tabhost_2的界面背景为白色,因为很容易实现,这里就不细说了。

LayoutInflater inflater = LayoutInflater.from(this);
View v1 = inflater.inflate(R.layout.tabhost1, null);
View v2 = inflater.inflate(R.layout.tabhost2, null);
TabSpec tabspec1 = tabhost.newTabSpec("1").setIndicator(v1)
		.setContent(new Intent(this, Tabhost_1.class));
TabSpec tabspec2 = tabhost.newTabSpec("2").setIndicator(v2)
		.setContent(new Intent(this, Tabhost_2.class));
tabhost.addTab(tabspec1);
tabhost.addTab(tabspec2);
tabhost.setOnTabChangedListener(this);//注册标签改变的监听

因为标签是会有切换的,因此在上面的代码中对TabHost进行了注册监听,具体注册监听的方法如下,我这里是简单的用两个Toast来进行提示。

// tabhost改变监听
@Override
public void onTabChanged(String tabId) {
for (int i = 0; i < tabWidget.getChildCount(); i++) {
	if (tabhost.getCurrentTab() == 0) {
		Toast.makeText(this, "This is 1", 0).show();
	} else if (tabhost.getCurrentTab() == 1) {
		Toast.makeText(this, "This is 2", 0).show();
	}
}
示例图如:



目录
相关文章
|
4月前
|
Android开发 数据安全/隐私保护 开发者
Android自定义view之模仿登录界面文本输入框(华为云APP)
本文介绍了一款自定义输入框的实现,包含静态效果、hint值浮动动画及功能扩展。通过组合多个控件完成界面布局,使用TranslateAnimation与AlphaAnimation实现hint文字上下浮动效果,支持密码加密解密显示、去除键盘回车空格输入、光标定位等功能。代码基于Android平台,提供完整源码与attrs配置,方便复用与定制。希望对开发者有所帮助。
|
4月前
|
XML Java Android开发
Android自定义view之网易云推荐歌单界面
本文详细介绍了如何通过自定义View实现网易云音乐推荐歌单界面的效果。首先,作者自定义了一个圆角图片控件`MellowImageView`,用于绘制圆角矩形图片。接着,通过将布局放入`HorizontalScrollView`中,实现了左右滑动功能,并使用`ViewFlipper`添加图片切换动画效果。文章提供了完整的代码示例,包括XML布局、动画文件和Java代码,最终展示了实现效果。此教程适合想了解自定义View和动画效果的开发者。
205 65
Android自定义view之网易云推荐歌单界面
|
4月前
|
Android开发 开发者
Android企业级实战-界面篇-3
本文是《Android企业级实战-界面篇》系列的第三篇,主要介绍分割线和条形跳转框的实现方法,二者常用于设置和个人中心界面。文章通过具体代码示例展示了如何实现这两种UI组件,并提供了效果图。实现前需准备`dimens.xml`、`ids.xml`、`colors.xml`等文件,部分资源可参考系列第一、二篇文章。代码中详细说明了布局文件的配置,如分割线的样式定义和条形跳转框的组件组合,帮助开发者快速上手并应用于实际项目中。
|
10月前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
4月前
|
XML Android开发 数据格式
Android企业级实战-界面篇-2
本文为《Android企业级实战-界面篇》系列第二篇,主要介绍三个UI模块的实现:用户资料模块、关注与粉丝统计模块以及喜欢和收藏功能模块。通过详细的XML代码展示布局设计,包括dimens、ids、colors配置文件的使用,帮助开发者快速构建美观且功能齐全的界面。文章结合实际效果图,便于理解和应用。建议配合第一篇文章内容学习,以获取完整工具类支持。
|
4月前
|
算法 Java Android开发
Android企业级实战-界面篇-1
本文详细介绍了Android企业级开发中界面实现的过程,涵盖效果展示、实现前准备及代码实现。作者通过自身经历分享了Android开发经验,并提供了`dimens.xml`、`ids.xml`、`colors.xml`和`strings.xml`等配置文件内容,帮助开发者快速构建规范化的UI布局。文章以一个具体的用户消息界面为例,展示了如何使用线性布局(LinearLayout)和相对布局(RelativeLayout)实现功能模块排列,并附带注意事项及使用方法,适合初学者和进阶开发者参考学习。
|
11月前
|
存储 Android开发 开发者
深入理解安卓应用开发的核心组件
【10月更文挑战第8天】探索Android应用开发的精髓,本文带你了解安卓核心组件的奥秘,包括Activity、Service、BroadcastReceiver和ContentProvider。我们将通过代码示例,揭示这些组件如何协同工作,构建出功能强大且响应迅速的应用程序。无论你是初学者还是资深开发者,这篇文章都将为你提供新的视角和深度知识。
|
11月前
|
数据可视化 Android开发 开发者
安卓应用开发中的自定义View组件
【10月更文挑战第5天】在安卓应用开发中,自定义View组件是提升用户交互体验的利器。本篇将深入探讨如何从零开始创建自定义View,包括设计理念、实现步骤以及性能优化技巧,帮助开发者打造流畅且富有创意的用户界面。
301 0
|
9月前
|
XML 搜索推荐 前端开发
安卓开发中的自定义视图:打造个性化UI组件
在安卓应用开发中,自定义视图是一种强大的工具,它允许开发者创造独一无二的用户界面元素,从而提升应用的外观和用户体验。本文将通过一个简单的自定义视图示例,引导你了解如何在安卓项目中实现自定义组件,并探讨其背后的技术原理。我们将从基础的View类讲起,逐步深入到绘图、事件处理以及性能优化等方面。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。
|
11月前
|
XML 前端开发 Java
安卓应用开发中的自定义View组件
【10月更文挑战第5天】自定义View是安卓应用开发的一块基石,它为开发者提供了无限的可能。通过掌握其原理和实现方法,可以创造出既美观又实用的用户界面。本文将引导你了解自定义View的创建过程,包括绘制技巧、事件处理以及性能优化等关键步骤。

热门文章

最新文章