Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 1019|回复: 0

Android腾讯微博客户端开发一:在下方的Tab的实现 -  A

[复制链接]

该用户从未签到

发表于 2011-10-25 08:56:31 | 显示全部楼层 |阅读模式





红色的是res下drawable文件夹下的一个selector文件,内容是

Selector文件代码


<?xml version="1.0" encoding="UTF-8"?>

<selector

  xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable=<span style="background-color: #00ff00;">"@drawable/tab_timeline_normal" /></span>

    <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable=<span style="background-color: #00ff00;">"@drawable/tab_timeline_active" /></span>

    <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable=<span style="background-color: #00ff00;">"@drawable/tab_timeline_normal" /></span>

    <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable=<span style="background-color: #00ff00;">"@drawable/tab_timeline_active" /></span>

    <item android:state_pressed="true" android:drawable=<span style="background-color: #00ff00;">"@drawable/tab_timeline_normal" /></span>

</selector>
复制代码



也是你按下时,和不按时等有一个效果上的改变,具体的可以参看关于selector的知识。绿色的就是两张不同效果的图片

Mainactivity代码


public class MainActivity extends TabActivity {

        private TabHost tabHost;

        private RadioGroup mainbtGroup;

        private static final String HOME = "主页";

        private static final String REFER = "提及";

        private static final String SECRET = "私信";

        private static final String SEARCH = "搜索";

        private static final String ATTENTIION = "关注";

        



        @Override

        public void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);

                setContentView(R.layout.tabhost);

               

                tabHost = this.getTabHost();



                View view1 = View.inflate(MainActivity.this, R.layout.tab, null);

                ((ImageView) view1.findViewById(R.id.tab_imageview_icon)).setImageResource(<span style="background-color: #ff0000;">R.drawable.tab_timeline_selector)</span>;

                ((TextView) view1.findViewById(R.id.tab_textview_title)).setText(HOME);



                TabHost.TabSpec spec1 = tabHost.newTabSpec(HOME)

                                .setIndicator(view1)

                                .setContent(new Intent(this, HomeTimeLineActivity.class));

                tabHost.addTab(spec1);

               

                View view2 = View.inflate(MainActivity.this, R.layout.tab, null);

                ((ImageView) view2.findViewById(R.id.tab_imageview_icon)).setImageResource(<span style="background-color: #ff0000;">R.drawable.tab_atme_selector)</span>;

                ((TextView) view2.findViewById(R.id.tab_textview_title)).setText(REFER);



                TabHost.TabSpec spec2 = tabHost.newTabSpec(REFER)

                                .setIndicator(view2)

                                .setContent(new Intent(this, ReferActivity.class));

                tabHost.addTab(spec2);

               

                View view3 = View.inflate(MainActivity.this, R.layout.tab, null);

                ((ImageView) view3.findViewById(R.id.tab_imageview_icon)).setImageResource(<span style="background-color: #ff0000;">R.drawable.tab_message_selector)</span>;

                ((TextView) view3.findViewById(R.id.tab_textview_title)).setText(SECRET);



                TabHost.TabSpec spec3 = tabHost.newTabSpec(SECRET)

                                .setIndicator(view3)

                                .setContent(new Intent(this, MessageActivity.class));

                tabHost.addTab(spec3);

               

                View view4 = View.inflate(MainActivity.this, R.layout.tab, null);

                ((ImageView) view4.findViewById(R.id.tab_imageview_icon)).setImageResource(<span style="background-color: #ff0000;">R.drawable.tab_explore_selector</span>);

                ((TextView) view4.findViewById(R.id.tab_textview_title)).setText(SEARCH);



                TabHost.TabSpec spec4 = tabHost.newTabSpec(SEARCH)

                                .setIndicator(view4)

                                .setContent(new Intent(this, SearchActivity.class));

                tabHost.addTab(spec4);

               

                View view5 = View.inflate(MainActivity.this, R.layout.tab, null);

                ((ImageView) view5.findViewById(R.id.tab_imageview_icon)).setImageResource(<span style="background-color: #ff0000;">R.drawable.tab_focus_selector</span>);

                ((TextView) view5.findViewById(R.id.tab_textview_title)).setText(ATTENTIION);



                TabHost.TabSpec spec5 = tabHost.newTabSpec(ATTENTIION)

                                .setIndicator(view5)

                                .setContent(new Intent(this, AttentionActivity.class));

                tabHost.addTab(spec5);

        }
复制代码



关键是tabhost,tabcontent和tabs这三个id一定要正确红色的是tab的背景


是一张.9.png格式的图片,这个很有用哟在android里,经常用来处理图片拉升的问题。左边和上面的小点表示要拉伸的地方,右边和下面的表示内容区。关于.9.png格式图片在android里面得更多应用看<a href="http://developer.android.com/guide/developing/tools/draw9patch.HTML">这里</a>

Tabhost布局文件代码


<?xml version="1.0" encoding="UTF-8"?>

<TabHost android:id="@android:id/tabhost"  android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">

        <RelativeLayout androidrientation="vertical"

                android:layout_width="fill_parent" android:layout_height="fill_parent">

                <FrameLayout android:id="@android:id/tabcontent"

                        android:layout_width="fill_parent" android:layout_height="fill_parent" />

                <TabWidget android:id="@android:id/tabs" <span style="background-color: #ff0000;">android:background="@drawable/tab_bkg"</span> android:fadingEdge="none"

                        android:fadingEdgeLength="0.0px" android:layout_width="fill_parent"

                        android:layout_height="wrap_content"

                        android:layout_alignParentBottom="true" />

        </RelativeLayout>

</TabHost>
复制代码



Tabhost布局文件代码
android:layout_alignParentBottom="true" 把tab的五个按钮挨着父控件的底部,在android里面RelativeLayout很好用
复制代码Tab布局文件,就是你看到的那5个按钮的布局文件代码
<?xml version="1.0" encoding="UTF-8"?>

<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"

  xmlns:android="http://schemas.android.com/apk/res/android">

    <ImageView android:id="@+id/tab_imageview_icon" android:layout_width="fill_parent" android:layout_height="32.0dip" android:scaleType="fitCenter" />

    <TextView android:id="@+id/tab_textview_title" android:textSize="11.0sp"  android:ellipsize="marquee" android:gravity="center" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" android:marqueeRepeatLimit="1" />

</LinearLayout>
复制代码
回复

使用道具 举报

该用户从未签到

发表于 2011-10-25 08:56:33 | 显示全部楼层

Re:Android腾讯微博客户端开发一:在下方的Tab的实

谢谢分享
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-25 08:56:37 | 显示全部楼层

Re:Android腾讯微博客户端开发一:在下方的Tab的实

感谢分享,写的很清楚
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-25 08:56:40 | 显示全部楼层

Re:Android腾讯微博客户端开发一:在下方的Tab的实

要是能系统一些就好
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 23:47 , Processed in 0.341345 second(s), 33 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表