这是前段时间做的一个项目的一部分,我把它单独提取出来!效果如下图:
可以把选项卡放在一个Activity的任何位置,自定义了选项卡按钮的背景颜色!
basicview_tab.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#852741"
>
<!-- 导入别的xml文件 -->
<include layout="@layout/title_bar"/>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<TabWidget android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="3" >
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>
自定义选项卡按钮 TabButton
public class TabButton extends LinearLayout {
public TabButton(Context c, int drawable, String text) {
super(c);
LayoutInflater inflater = LayoutInflater.from(c);
View view = inflater.inflate(R.layout.tab_button_layout, null);
addView(view);
TextView tv = (TextView) view.findViewById(R.id.tab_button_text);
ImageView iv = (ImageView) view.findViewById(R.id.tab_button_img);
iv.setImageResource(drawable);
tv.setText(text);
}
}
布局 tab_button_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="62dip"
android:background="@drawable/tab_selector_bg"
android:gravity="center"
>
<ImageView
android:layout_width="240dip"
android:layout_height="wrap_content"
android:id="@+id/tab_button_img"
android:layout_gravity="center_horizontal"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tab_button_text"
android:layout_gravity="center"
android:textColor="#ffffff"
/>
</LinearLayout>
主界面代码 BasicViewTab
public class BasicViewTab extends TabActivity {
private TabHost tabHost;
private TextView textView;
/* (non-Javadoc)
* @see android.app.ActivityGroup#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.basicview_tab);
Intent intent = new Intent(BasicViewTab.this,TabExpenses.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
textView = (TextView)findViewById(R.id.tv_title_bar);
textView.setText("Basic View Factor");
tabHost = getTabHost();
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator(new TabButton(this,
R.drawable.tabbar_icon_basic_expenses_selector,
"Expenses"))
.setContent(intent));
tabHost.addTab(tabHost.newTabSpec("tab2")
.setIndicator(new TabButton(this,
R.drawable.tabbar_icon_basic_setting_selector,
"Setting"))
.setContent(new Intent(this, TabSetting.class)));
tabHost.setCurrentTab(0);
ImageView backHome = (ImageView) findViewById(R.id.btn_back_home);
backHome.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
BasicViewTab.this.finish();
}
});
}
}
附件里有完整代码!
分享到:
相关推荐
在实现自定义选项卡时,我们通常会继承自View或者更复杂的ViewGroup,如LinearLayout或RelativeLayout,来构建我们自己的选项卡视图。 1. **自定义View**: 为了创建选项卡,我们需要创建一个自定义的View类,扩展自...
通过研究并修改这个示例代码,你可以更好地理解RadioGroup自定义选项卡样式的实现过程,从而在你的应用程序中创造出更具特色的选项卡功能。记得在实际开发中,始终以用户体验为中心,使界面既美观又易于操作。
这个压缩包“安卓FragmentTab选项卡相关-android自定义中间带圆形按钮的底部导航控件.rar”似乎包含了一个定制化的底部导航条,该导航条在中间带有圆形按钮,这在许多现代移动应用中是流行的设计模式。 首先,...
2. **菜单资源(Menu Resource)**:底部选项卡的每个按钮对应一个菜单项,这些菜单项定义在XML文件(通常是`res/menu`目录下的文件)中,每个菜单项包含`id`、`title`和可选的图标。 3. **监听事件**:通过设置`...
5. **连接选项卡和ViewPager**:为了实现点击底部选项卡切换页面,需要监听选项卡按钮的点击事件,当按钮被点击时,调用`ViewPager`的`setCurrentItem(int item)`方法来切换到相应位置的页面。 6. **可滑动效果**:...
4. 用户体验设计,如添加开始/停止预览的按钮,以及拍照后的确认和取消选项。 总的来说,"android surfaceview自定义拍照 绘制头像轮廓"是一个结合了Android视图系统、摄像头API、图像处理技术的项目。通过理解并...
如果需要自定义选项卡的显示,可以在适配器中重写 `getPageTitle()` 方法,或者在 TabLayout 中添加自定义的 Tab 标签。 7. **事件监听**: 为了响应用户在选项卡间的切换,可以为 TabLayout 添加 `...
总的来说,"RadioButton实现底部带指示条的Tab选项卡"是一个结合了UI设计和事件处理的Android开发任务,涉及到RadioButton、RadioGroup、自定义样式、布局管理和用户交互等多方面的知识。通过这个项目,开发者不仅...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的界面,每个选项卡可以展示不同的内容。在传统的TabHost使用中,我们通常只能使用系统预设的样式和颜色,但为了使应用更加个性化,开发者...
在某些情况下,自定义Dialog可能会被嵌入到一个带有选项卡切换的主界面中,使用`TabLayout`和`ViewPager`来实现。 综上所述,"Android 自定义dialog实现年龄选择输入"涉及到的核心技术包括自定义Dialog的创建、年龄...
在Android开发中,有时我们需要创建一些独特形状的视图,以实现特定的界面设计或交互效果。...通过研究其源码,我们可以学习到如何在Android中实现自定义视图的绘制和事件监听,进一步提升我们的Android开发技能。
这个项目可能包含了如何创建和设置`TabLayout`、`ViewPager`,以及如何自定义选项卡样式的具体实现。 5. **优化与进阶** - **动态加载**:如果选项卡的数量或内容在运行时变化,需要动态添加或移除选项卡。 - **...
`FragmentTabHost`是Android SDK中的一个类,它是`TabHost`和`Fragment`的结合体,主要用在Android 3.0(API级别11)及以上版本,使得我们可以在每个选项卡中使用`Fragment`,而不是传统的`Activity`。这带来了更好...
在Android开发中,创建一个名为“休闲时分”的应用程序,通常涉及到使用选项卡(Tab)和列表视图(ListView)来构建用户界面。本讲解主要围绕如何利用这些组件实现特定功能,包括展示笑话和随机显示图片。 首先,...
总结,通过使用Fragment和FragmentTabHost,开发者能够在Android应用中轻松实现底部选项卡导航。这种方法提供了良好的可维护性和扩展性,可以根据需求添加或移除选项卡,同时也支持在不同设备和屏幕尺寸上保持一致的...
在本主题“巧妙运用ViewStub写出类似Tab选项卡”中,我们将探讨如何利用ViewStub的特性来实现灵活、自定义的Tab选项卡效果。 首先,理解Tab选项卡在移动应用中的常见用途。通常,Tab 用于展示多视图内容,用户可以...
在Android应用开发中,创建一个用户友好的界面是至关重要的,而选项卡界面(Tab Layout)就是一个常见的设计模式,它能帮助用户轻松地在多个视图之间切换。本教程将介绍如何利用`RadioGroup`和`ViewPager`来实现这样...
在源码中,可能会看到`TabLayout`与`ViewPager`的联动设置,如`TabLayout.setupWithViewPager()`,以及自定义选项卡的标题和图标。 4. **浏览器控件**: 在Android中,通常使用`WebView`组件来展示网页内容。`...