標籤:android style blog http color io ar sp div
try { Class<?> argClass=mSearchView.getClass(); //指定某個私人屬性 Field mSearchHintIconField = argClass.getDeclaredField("mSearchHintIcon"); mSearchHintIconField.setAccessible(true); View mSearchHintIcon = (View)mSearchHintIconField.get(mSearchView); mSearchHintIcon.setVisibility(View.GONE); //注意mSearchPlate的背景是stateListDrawable(不同狀態不同的圖片) 所以不能用BitmapDrawable Field ownField = argClass.getDeclaredField("mSearchPlate"); //setAccessible 它是用來設定是否有許可權訪問反射類中的私人屬性的,只有設定為true時才可以訪問,預設為false ownField.setAccessible(true); View mView = (View) ownField.get(mSearchView); mView.setBackground(getResources().getDrawable(R.drawable.contacts_search_writebg)); //指定某個私人屬性 Field mQueryTextView = argClass.getDeclaredField("mQueryTextView"); mQueryTextView.setAccessible(true); Class<?> mTextViewClass = mQueryTextView.get(mSearchView).getClass().getSuperclass().getSuperclass().getSuperclass(); //mCursorDrawableRes游標圖片Id的屬性 這個屬性是TextView的屬性,所以要用mQueryTextView(SearchAutoComplete) //的父類(AutoCompleteTextView)的父 類( EditText)的父類(TextView) Field mCursorDrawableRes = mTextViewClass.getDeclaredField("mCursorDrawableRes"); //setAccessible 它是用來設定是否有許可權訪問反射類中的私人屬性的,只有設定為true時才可以訪問,預設為false mCursorDrawableRes.setAccessible(true); //注意第一個參數持有這個屬性(mQueryTextView)的對象(mSearchView) 游標必須是一張圖片不能是顏色,因為游標有兩張圖片, //一張是第一次獲得焦點的時候的閃爍的圖片,一張是後邊有內容時候的圖片,如果用顏色填充的話,就會失去閃爍的那張圖片, //顏色填充的會縮短文字和游標的距離(某些字母會背游標覆蓋一部分)。 mCursorDrawableRes.set(mQueryTextView.get(mSearchView), R.drawable.icon_small_add_delete); } catch (Exception e) { e.printStackTrace(); }
參考原文:http://blog.csdn.net/chenshijun0101/article/details/21521137
android SearchView 樣式修改