Jack_King007的专栏

安卓标题栏优化(1)——纪念火影隐身术

在老师的号召下,我们做着痛苦的代码抽取,封装,只要一样的,都要抽取,封装。

忍者世界,有着一个传奇忍术,就算是自来也不知道的忍术,他明明站在你面前,你却看不到他,就在你掉以轻心的时候,他在你背后给你致命一击。 他就是隐身术。

思路: 对于一个标题栏,一个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);

	}