Android SearchView 自訂SearchIcon和字型顏色大小,searchviewicon
自訂SearchView的搜尋表徵圖和字型屬性相對複雜一些,記下來。
一、自訂SearchIcon
1、API版本低於21:版本小於21時,要修改SearchIcon比較複雜,需要先擷取到SearchView的ImageView,然後為ImageView設定圖片,具體代碼如下:
(1)初始化SearchView控制項
mSearch = (SearchView) view.findViewById(R.id.search);
(2)設定自訂的搜尋表徵圖
if(mSearch==null){ return;}else{//擷取ImageView的idint imgId = mSearch.getContext().getResources().getIdentifier("android:id/search_mag_icon",null,null); //擷取ImageViewImageView searchButton = (ImageView)mSearch.findViewById(imgId);//設定圖片searchButton.setImageResource(R.drawable.search);//不使用預設mSearch.setIconifiedByDefault(false);}
2、API版本大於21時,就很方便了,直接在layout檔案中為SearchView設定屬性searchIcon即可啦。
android:searchIcon="@drawable/search"
二、自訂字型顏色和大小,也可以修改SearchView中的提示文字的顏色
1、初始化SearchView控制項,同上。
2、擷取到SearchView的TextView,然後就可以修改其屬性了,代碼如下。
if(mSearch==null){ return;}else{//擷取到TextView的IDint id = mSearch.getContext().getResources().getIdentifier("android:id/search_src_text",null,null);//擷取到TextView的控制項TextView textView = (TextView) mSearch.findViewById(id);//設定字型大小為14sptextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);//14sp//設定字型顏色textView.setTextColor(getActivity().getResources().getColor(R.color.search_txt_color)); //設定提示文字顏色textView.setHintTextColor(getActivity().getResources().getColor(R.color.search_hint_color));}
三、最終: