標籤:代碼最佳化 安卓
在老師的號召下,我們做著痛苦的代碼抽取,封裝,只要一樣的,都要抽取,封裝。
忍者世界,有著一個傳奇忍術,就算是自來也不知道的忍術,他明明站在你面前,你卻看不到他,就在你掉以輕心的時候,他在你背後給你致命一擊。 他就是隱藏術。
思路: 對於一個標題列,一個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);}
安卓標題列最佳化(1)——紀念火影-->隱藏術