1.制作4个9patch的tab样式,可参考android默认的资源
tab_unselected.9.png tab_selected.9.pngtab_press.9.pngtab_focus.9.png
这4个资源分别代表Tab的4种状态。
2.定义Tab的selector样式(就叫它tab_indicator.xml好了),将其放入drawable文件夹下,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Non focused states -->
<item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected" />
<item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected" />
<!-- Focused states -->
<item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_focus" />
<item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_focus" />
<!-- Pressed -->
<item android:state_pressed="true" android:drawable="@drawable/tab_press" />
</selector>
3.编写indicator的布局文件(不妨也叫tab_indicator.xml),将其放入layout文件夹下,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dip"
android:layout_height="64dip"
android:layout_weight="1"
android:layout_marginLeft="-3dip"
android:layout_marginRight="-3dip"
android:orientation="vertical"
android:background="@drawable/tab_indicator">
<ImageView android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
/>
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
style="?android:attr/tabWidgetStyle" mce_style="?android:attr/tabWidgetStyle"
/>
4.接下来就是在TabActivity中使用我们自己编写的Tab样式了:
// 首先获取TabWidget
mTabHost = getTabHost();
LinearLayout ll = (LinearLayout)mTabHost.getChildAt(0);
TabWidget tw = (TabWidget)ll.getChildAt(0);
然后用类似如下代码创建TabSpec,就大功告成了。
RelativeLayout tabIndicator1 = (RelativeLayout) LayoutInflater.from(this).inflate(R.layout.tab_indicator, tw, false);
TextView tvTab1 = (TextView)tabIndicator1.getChildAt(1);
tvTab1.setText("tab1");
mTabHot = mTabHost.newTabSpec("TAB_1")
.setIndicator(tabIndicator1)
.setContent(contentIntent);
分享到:
相关推荐
Android Tablayout 自定义Tab布局的使用案例 Android Tablayout 是 Android 设计库中的一部分,主要用于实现标签页功能。Tablayout 中的 Tab 可以自定义布局,以满足不同的需求。本文将 introduction 了 Android ...
在Android中,自定义Tab页的外观通常涉及到修改Tab的布局和样式。我们可以创建一个XML布局文件,用于定义每个RadioButton的外观。例如,创建一个名为`custom_tab.xml`的文件,包含RadioButton的文本、图标以及所需的...
通过以上步骤,我们已经成功地自定义了Android的TabHost样式。这不仅可以提升应用的视觉效果,还可以提高用户的交互体验。记得在实际项目中,要根据需求灵活调整样式和逻辑,以达到最佳的效果。同时,阅读博客中的...
### 一、自定义Tab #### 1. 使用`TabLayout.Tab`接口 首先,可以通过`TabLayout`的`newTab()`方法创建新的`Tab`对象,然后通过`setCustomView()`方法设置自定义视图。你可以创建一个`LinearLayout`或`...
本文将详细讲解如何实现自定义Tab样式,特别是将Tab标签置于底部的场景,以及如何使用TabHost组件来搭建这样的界面。 首先,我们需要理解TabHost组件。TabHost是Android提供的一个容器,它允许我们在一个Activity中...
6. **字体与颜色**:自定义RadioButton的字体大小、颜色,以及选中和未选中时的文字样式,可以使用android:textSize、android:textColor等属性,或者在主题中全局设定。 在TestDemo项目中,你可以找到一个实际的...
android自定义控件,实现选项卡功能。可通过自定义属性设置选项卡样式,且Tab的数目也可通过属性灵活设置,可设置为文本选项卡或图片选项卡,利用回调监听响应各Tab的点击事件,且设置方法和android原生控件设置点击...
4. 自定义Tab外观: 要自定义选项卡的外观,你可以覆盖TabWidget的默认样式。这可以通过设置自定义布局文件来实现,或者在代码中修改TabSpec的指示器。 ```xml <!-- custom_tab.xml --> <LinearLayout xmlns:...
在本示例中,"android gallery 导航TAB样式 非常的漂亮和实用",我们可以看到开发者通过自定义布局和样式,使得`Gallery`不仅具备了导航功能,还拥有美观的视觉效果。 `Gallery`的基本用法包括设置适配器(Adapter...
为了实现不同tab有不同的标题显示样式,我们可以在`setTitle()`方法中传入自定义的字符串资源,或者使用自定义的标题视图。例如,我们可以创建一个自定义的`Toolbar`并设置其标题: ```xml <androidx.appcompat....
为了让Tab更符合底部导航栏的风格,我们可能需要自定义Tab的样式,包括字体、颜色、背景等。这可以通过创建新的主题或者在布局中直接设置样式来实现。 5. **使用Fragment替换Activity** 考虑到现代Android开发的...
5. **自定义Tab样式** 可以通过`TabLayout.OnTabSelectedListener`监听Tab选中状态,或者自定义`TabLayout.Tab`的视图,以实现个性化标签样式。 6. **源码解析** 了解`Menu`和`TabLayout`的内部工作原理,可以...
首先,我们来看标题中的“android自定义RadioButton”。在Android中,自定义RadioButton主要涉及以下几个方面: 1. **绘制自定义背景**:这通常通过创建XML drawable文件来实现。例如,在`button1.9.png`、`button...
1. **自定义Tab样式** - 图片+文字:为了实现这种样式,我们需要创建一个自定义的View,包含ImageView和TextView,然后在TabLayout的Tab中使用这个自定义View。在Adapter中,我们可以通过`TabLayout.Tab....
6. **个性化Tab**:如果你需要更复杂的Tab样式,例如自定义图标或文字颜色,可以重写`TabLayout`的`Tab`对象,使用`setIcon`和`setText`方法,或者设置自定义的`TabView`。 7. **注意事项**:确保在不同的设备和...
步骤3:自定义Tab样式 为了达到高仿微博的效果,我们可能需要对Tab的样式进行定制。这包括改变Tab的文字颜色、背景颜色、图标等。可以通过自定义布局文件实现,然后在setIndicator方法中传入这个自定义布局。 ```...
4. **自定义Tab样式** 为了实现纵向的Tab,我们需要自定义`TabLayout`的样式。这通常涉及到使用`TabLayout.OnTabSelectedListener`监听Tab的选择状态,并使用`TabLayout.addTab()`方法动态添加Tab。 5. **编程实现...
此外,这种竖直选项卡还支持自定义tab样式,这对于品牌识别和用户体验的提升非常有帮助。开发者可以通过设置颜色、字体、图标等属性,使选项卡与应用的整体风格保持一致,提高用户的视觉舒适度和操作满意度。 自带...
本篇文章将深入探讨如何在Android中实现自定义的底部TAB,以满足个性化需求。 首先,我们需要理解Android的UI组件系统。在Android中,底部导航栏通常由`BottomNavigationView`或自定义视图来实现。对于自定义底部...
通过MaFengWoTab-master这个项目源码,你可以看到具体的实现细节,包括类结构、绘图逻辑和动画控制,这对于提升Android自定义视图开发能力是非常有价值的。在实际开发中,可以根据自己的需求进行修改和扩展,创造出...