精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-07-20
最后修改:2011-11-03
javaEye处女贴
下面的是res下drawable文件夹下的一个selector文件,作用主要是当每一个tab选项被点击,获得焦点以及被选中的时候背景都会发生变化 <?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="@drawable/tab_timeline_normal" /></span> <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_timeline_active" /></span> <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_timeline_normal" /></span> <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_timeline_active" /></span> <item android:state_pressed="true" android:drawable="@drawable/tab_timeline_normal" /></span> </selector> 注意一定要继承TabActivity 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(R.drawable.tab_timeline_selector);//设置每一个tab的图标 ((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(R.drawable.tab_atme_selector); ((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(R.drawable.tab_message_selector); ((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(R.drawable.tab_explore_selector); ((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(R.drawable.tab_focus_selector); ((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布局文件关键是tabhost,tabcontent和tabs这三个id一定要正确 <?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 android:orientation="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> android:layout_alignParentBottom="true" 把tab的五个按钮挨着父控件的底部,在android里面RelativeLayout很好用 下面的是每一个tab项的布局文件上面是图片下面是文字 <?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> 是一张.9.png格式的图片,这个很有用哟在android里,经常用来处理图片拉升的问题。左边和上面的小点表示要拉伸的地方,右边和下面的表示内容区。关于.9.png格式图片在android里面得更多应用看http://developer.android.com/guide/developing/tools/draw9patch.html 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-07-20
顶啊。不错。最近自己在搞新浪微博客户端练手,很有用。
|
|
返回顶楼 | |
发表时间:2011-07-20
zhouYunan2010 写道 顶啊。不错。最近自己在搞新浪微博客户端练手,很有用。
谢谢支持处女贴 |
|
返回顶楼 | |
发表时间:2011-07-20
哈哈,不错,就download过一个sdk,写了个“hello world”........
|
|
返回顶楼 | |
发表时间:2011-07-21
写的不错啊。
|
|
返回顶楼 | |
发表时间:2011-07-21
--呵呵 支持一下,,,
话说我对android下xml中如何布局感到非常纠结, 有什么方法能快速提高呢、、、 |
|
返回顶楼 | |
发表时间:2011-07-21
jjcoder 写道 --呵呵 支持一下,,,
话说我对android下xml中如何布局感到非常纠结, 有什么方法能快速提高呢、、、 ----------- 估计只有勤练才能快速提高了 |
|
返回顶楼 | |
发表时间:2011-07-21
不错,效果很好,感谢分享
|
|
返回顶楼 | |
发表时间:2011-07-21
没有红色,我以为android还能直接<span style="background-color: #00ff00;">呢。。。
|
|
返回顶楼 | |
发表时间:2011-07-21
不错,你那9宫格图片使用方法帮我大忙了。提问个问题:如果我想让图片中间被拉伸,两边保留,有什么好的办法吗?
www.91dota.com 我的博客写一些android技术文章,希望能一起交流. |
|
返回顶楼 | |