多说无益,直接上代码。
   Class<?> argClass=mSearchView.getClass();            //指定某个私有属性            Field mSearchHintIconField = argClass.getDeclaredField("mSearchHintIcon");            mSearchHintIconField.setAccessible(true);            ImageView mSearchHintIcon = (ImageView)mSearchHintIconField.get(mSearchView);//            mSearchHintIcon.setVisibility(View.GONE);            mSearchHintIcon.setImageResource(R.drawable.main_search_selector);                        //注意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.person_edittext_selector));


   
     //修改关闭图标            Field mCloseButton = argClass.getDeclaredField("mCloseButton");            mCloseButton.setAccessible(true);            ImageView backView = (ImageView) mCloseButton.get(mSearchView);            backView.setImageResource(R.drawable.delete_selector);                        //修改为展开时的搜索图标            Field mSearchButton = argClass.getDeclaredField("mSearchButton");            mSearchButton.setAccessible(true);            ImageView search = (ImageView) mSearchButton.get(mSearchView);            search.setImageResource(R.drawable.main_search_selector);                       //修改光标            //指定某个私有属性              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.divider_selector);  


   


更多相关文章

  1. android动画效果_图片闪烁
  2. 【Android】Web开发之显示网络图片的两种方法
  3. Android(安卓)拍照添加时间水印
  4. 【Android(安卓)非常基础】contentResolver.update where条件不
  5. [Android(安卓)Pro] 调用系统相机和图库,裁剪图片
  6. Android(安卓)常用的第三方开源框架(非基础的库)
  7. android如何限制只能输入指定的字符
  8. 安卓Banner的使用
  9. 强大的 Android(安卓)属性动画 ObjectAnimator

随机推荐

  1. Android SpannableStringBuilder改变某部
  2. Android webkit log定义
  3. windowSoftInputMode属性设置值
  4. android画统计图的chart engine
  5. android权限
  6. Android小程序--模拟焰火粒子和瀑布粒子
  7. android 如何在对话框中获取edittext中的
  8. android页面间传递对象
  9. 大话企业级android读书笔记(三)
  10. Android学习