在老师的号召下,我们做着痛苦的代码抽取,封装,只要一样的,都要抽取,封装。
忍者世界,有着一个传奇忍术,就算是自来也不知道的忍术,他明明站在你面前,你却看不到他,就在你掉以轻心的时候,他在你背后给你致命一击。 他就是隐身术。
思路: 对于一个标题栏,一个APP要多次用到 ,我们要单独抽取出来,作为一个XML 如果一个界面需要到了 就用include 包括进来
<include
android:id="@+id/title_bar"
layout="@layout/layout_title_bar" />
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/title_bar"
android:layout_width="match_parent"
android:layout_height="55dp"
android:background="@drawable/title_red_bg2"
android:gravity="center_vertical"
android:orientation="horizontal" >
<Button
android:id="@+id/btn_left"
style="@style/style_title_btn"
android:layout_width="wrap_content"
android:background="@android:color/transparent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:padding="5dp"
android:text="" />
<ImageButton
android:id="@+id/imgbtn_left"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="@android:color/transparent"
android:scaleType="centerInside" />
<RelativeLayout
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1" >
<TextView
android:id="@+id/txt_title"
style="@style/style_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:drawablePadding="5dp"
android:gravity="center"
android:singleLine="true"
android:text="新闻" />
</RelativeLayout>
<ImageButton
android:id="@+id/imgbtn_text"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:visibility="gone"
android:src="@drawable/icon_textsize"
android:background="@android:color/transparent"
android:scaleType="centerInside" />
<ImageButton
android:id="@+id/imgbtn_right"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="@android:color/transparent"
android:scaleType="centerInside" />
<ImageButton
android:id="@+id/btn_right"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="@android:color/transparent"
android:scaleType="centerInside" />
</LinearLayout>
关于布局嘛 Button ImageView 都设置成 #00000000 透明色
<span style="font-size:18px;"> android:background="@android:color/transparent"
其实 这个标题栏做的不错啦 ,如果你开发的时候没有适合的,可以手残下来。
</span>
然后再 Oncreate 方法里面 初始化
protected void initTitleBar(View view) {
leftBtn = (Button) view.findViewById(R.id.btn_left);
rightBtn = (ImageButton) view.findViewById(R.id.btn_right);
leftImgBtn = (ImageButton) view.findViewById(R.id.imgbtn_left);
rightImgBtn = (ImageButton) view.findViewById(R.id.imgbtn_right);
leftImgBtn.setImageResource(R.drawable.img_menu);
titleTv = (TextView) view.findViewById(R.id.txt_title);
leftBtn.setVisibility(View.GONE);
rightBtn.setVisibility(View.GONE);
if(leftImgBtn!=null)
leftImgBtn.setOnClickListener(this);
}