项目中要使用到带图标hint的EditTexit,网上搜到该篇文章,特转来保存以供学习回顾。
先上效果:
(忽略掉那个 FloatingActionButton …….路人乱入….)
同学问的一个问题,编辑子网掩码的时候不显示笔,否则显示.
他都要重写一个view了
….其实很简单..
然后他说:当得到焦点时 这个手机图片不会消失 这样写的话
然后改一下:就满足需求了:
finalEditText mEditText = (EditText) findViewById(R.id.ed);finalDrawable drawable = getResources().getDrawable(R.mipmap.ic_launcher);// 这一步必须要做,否则不会显示.drawable.setBounds(0,0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
mEditText.addTextChangedListener(newTextWatcher() {@OverridepublicvoidbeforeTextChanged(CharSequence s,intstart,intcount,intafter) {
}@OverridepublicvoidonTextChanged(CharSequence s,intstart,intbefore,intcount) {if(count !=0) {
mEditText.setCompoundDrawables(null,null,null,null);
}
}@OverridepublicvoidafterTextChanged(Editable s) {if(TextUtils.isEmpty(s)) {
mEditText.setCompoundDrawables(drawable,null,null,null);
}
}
});
========================================
关键答案来自:使用代码为textview设置drawableLeft
正文:
我想在代码中改变drawable。
有什么方法可以使用代码为textview设置drawableLeft呢?
解决方案:
publicvoidsetCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom);
1
类似调用方法如下:
1.在XML中使用
android:drawableLeft=”@drawable/icon”
2.代码中动态变化
Drawable drawable= getResources().getDrawable(R.drawable.drawable);/// 这一步必须要做,否则不会显示.drawable.setBounds(0,0, drawable.getMinimumWidth(), drawable.getMinimumHeight());myTextview.setCompoundDrawables(drawable,null,null,null);
也或参考另一个函数
public void setCompoundDrawablesWithIntrinsicBounds (Drawableleft,Drawabletop, Drawableright, Drawablebottom)
版权声明:http://blog.csdn.net/u013768203