3つの虫眼鏡アイコンがあります。2つはIconizedByDefaultがtrueの場合に表示され(1つは押す前に表示され、もう1つは「ヒント」に表示されます)、もう1つはIconizedByDefaultがfalseの場合に常に表示されます。すべてのフィールドはプライベートであるため、それらを取得する方法はxmlIDによるものです。(コードのほとんどは、この投稿の他の回答ですでに個別に言及されています)
IconizedByDefaultがtrueの場合、ヒントのアイコン(アイコンを押した後にのみ表示されます)を次のように変更します。
mSearchSrcTextView = (SearchAutoComplete)findViewById(R.id.search_src_text);
次に、Androidのソースコードと同じようにします。
final int textSize = (int) (mSearchSrcTextView.getTextSize() * 1.25);
newSearchIconDrawable.setBounds(0, 0, textSize, textSize);
final SpannableStringBuilder ssb = new SpannableStringBuilder(" ");
ssb.setSpan(new ImageSpan(newSearchIconDrawable), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
ssb.append(hintText);
mSearchHintIconは、新しい検索アイコンであるnewSearchIconDrawableに置き換えられました。次に、ヒントを設定します
mSearchSrcTextView.setHint(ssb);
他の2つのアイコンはにありImageView
、IDで見つけることができます。searchviewが閉じているとき(iconizedByDefaultがtrueのとき)のアイコンの場合は、次のようにします。
mSearchButton = (ImageView) findViewById(R.id.search_button);
常に表示されるもの(iconizedByDefaultがfalseの場合)
mCollapsedIcon = (ImageView) findViewById(R.id.search_mag_icon);