在填充或触摸EditText后才显示DrawableRight图像,可以通过以下步骤实现:
下面是一个示例代码:
public class CustomEditText extends EditText implements View.OnTouchListener {
private Drawable drawableRight;
public CustomEditText(Context context) {
super(context);
init();
}
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public CustomEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
// 获取DrawableRight图像
drawableRight = getCompoundDrawables()[2];
// 设置触摸监听器
setOnTouchListener(this);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
// 判断触摸位置是否在DrawableRight图像内
if (event.getRawX() >= (getRight() - drawableRight.getBounds().width())) {
// 显示DrawableRight图像
// 可以在这里执行一些操作,比如清空EditText内容
setCompoundDrawables(null, null, drawableRight, null);
return true;
}
}
return false;
}
}
在布局文件中使用CustomEditText控件:
<com.example.CustomEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableRight="@drawable/your_drawable"
android:hint="Enter text" />
这样,在填充或触摸CustomEditText后,DrawableRight图像就会显示出来。
注意:上述示例代码中的CustomEditText是一个自定义的EditText控件,你可以根据自己的需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云