作者:小忠 | 来源:互联网 | 2023-05-16 03:33
1,实现.xml中可以设置TextView(EditText也可以)的图片和文字,如:通过android:drawablePadding”8dp”设置图片与控件的间距<Tex
1,实现
.xml中可以设置TextView(EditText也可以)的图片和文字,如:
通过android:drawablePadding=”8dp”设置图片与控件的间距
<TextView
android:drawableTop="@drawable/icon_home"
android:drawablePadding="8dp" />
在.java代码中如何设置这一属性呢?调用自定义函数:
/**
* 设置textView顶部图片
* @param v 要设置的TextView
* @param id_drawable 还要设置的图片
*/
private void setDrawableTop(TextView v, int id_drawable){
Drawable topDrawable = getResources().getDrawable(id_drawable);
topDrawable.setBounds(0, 0, topDrawable.getMinimumWidth(), topDrawable.getMinimumHeight());
v.setCompoundDrawables(null, topDrawable, null, null);
}
2,点击事件
控件(et_password)绑定点击事件:
et_password.setOnTouchListener(this);
点击事件处理:
点击图片切换决定et_password显示的密码是明文还是密文。
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (v.getId()) {
case R.id.act_login_et_password:
Drawable drawable = et_password.getCompoundDrawables()[2];
if (drawable == null)
return false;
if (event.getAction() != MotionEvent.ACTION_UP)
return false;
if (event.getX() > et_password.getWidth()
- et_password.getPaddingRight()
- drawable.getIntrinsicWidth()){
isChecked = !isChecked;
if(isChecked){
et_password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
}else{
et_password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
}
}
break;
default:
break;
}
return false;
}