修改SearchView默认搜索图标

标题:在代码中修改SearchView控件的默认图标样式,并设置搜索图标与默认字体的距离

步骤:

1、首先定义一个SearchView

Searchview mSearchview  = (SearchView) findViewById(R.id.search_view);


2、获取原生SearchView布局文件中的id:search_src_text

int text_id = mSearchview.getContext().getResources().

getIdentifier("android:id/search_src_text", null, null);


3、获取文本

TextView textView = (TextView) mSearchview.findViewById(text_id);

textView.setTextColor(Color.RED);//设置默认字体颜色

textView.setTextSize(14);//设置默认字体大小


4、替换搜索图标,将搜索图标与默认字体绑定

final Drawable searchIcon = context.getDrawable(R.drawable.searchview_search_icon);
final int textSize = (int) (textView.getTextSize() * 1.25);//根据文本框大小来确定图标大小

searchIcon.setBounds(0, 0, textSize, textSize);

//设置默认显示字体

final String  hintString = getResources().getString(R.string.use_help_text_search);
final SpannableStringBuilder ssb = new SpannableStringBuilder("   "); // for the icon
ssb.append(hintString);
ssb.setSpan(new ImageSpan(searchIcon), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
int padding =getResources().getDimensionPixelSize(R.dimen.searchview_search_button_padding);
textView.setPadding(padding, padding, padding, padding);//设置图标和文字跟四周距离
textView.setGravity(Gravity.BOTTOM);

textView.setHint(ssb);


如果对SearchView不熟悉,可以下载源码看下,对照原生布局可以更好的修改。


你可能感兴趣的:(android原生控件样式修改)