给EditText左右两边设置图片与监听(drawableLeft/drawableRight)/弹出键盘
2017-04-24 21:24
477 查看
设置图片:
Drawable phoneDrawableLeft = getResources().getDrawable(R.mipmap.phone_login, null);
phoneDrawableLeft.setBounds(0, 0, drawableDimension, drawableDimension);
Drawable phoneDrawableRight = getResources().getDrawable(R.mipmap.empty, null);
phoneDrawableRight.setBounds(0, 0, drawableDimension, drawableDimension);
mEtPhone.setCompoundDrawables(phoneDrawableLeft, null, phoneDrawableRight, null);
mEtPhone.setCompoundDrawablePadding(Utils.dp2px(this, 5));
设置监听:自定义View集成EditText,然后重写onTouchEvent方法,注意getX()获取的是View在屏幕X轴的坐标,不是相对坐标:
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
Drawable right = getCompoundDrawables()[2]; //获取右边图片
Drawable left = getCompoundDrawables()[0]; //获取左边图片
if ((right != null) && (event.getRawX() >= (getX() + (getWidth() - right.getBounds().width()))) && mDrawableRightListener != null) {
mDrawableRightListener.onDrawableClick();
return true;
}
if ((left != null) && (event.getRawX() <= (getX() + left.getBounds().width())) && mDrawableLeftListener != null) {
mDrawableLeftListener.onDrawableClick();
return true;
}
break;
}
return super.onTouchEvent(event);
}
public void setDrawableRightListener(DrawableListener l) {
mDrawableRightListener = l;
}
public void setDrawableLeftListener(DrawableListener l) {
mDrawableLeftListener = l;
}
public interface DrawableListener {
public void onDrawableClick();
}
设置焦点变化监听:
//设置焦点变化监听
mEtPhone.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
mEtPhone.setCompoundDrawables(phoneDrawableLeft, null, phoneDrawableRight, null);
} else {
mEtPhone.setCompoundDrawables(phoneDrawableLeft, null, null, null);
}
}
});
自动弹出键盘:
//弹出键盘
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
Drawable phoneDrawableLeft = getResources().getDrawable(R.mipmap.phone_login, null);
phoneDrawableLeft.setBounds(0, 0, drawableDimension, drawableDimension);
Drawable phoneDrawableRight = getResources().getDrawable(R.mipmap.empty, null);
phoneDrawableRight.setBounds(0, 0, drawableDimension, drawableDimension);
mEtPhone.setCompoundDrawables(phoneDrawableLeft, null, phoneDrawableRight, null);
mEtPhone.setCompoundDrawablePadding(Utils.dp2px(this, 5));
设置监听:自定义View集成EditText,然后重写onTouchEvent方法,注意getX()获取的是View在屏幕X轴的坐标,不是相对坐标:
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
Drawable right = getCompoundDrawables()[2]; //获取右边图片
Drawable left = getCompoundDrawables()[0]; //获取左边图片
if ((right != null) && (event.getRawX() >= (getX() + (getWidth() - right.getBounds().width()))) && mDrawableRightListener != null) {
mDrawableRightListener.onDrawableClick();
return true;
}
if ((left != null) && (event.getRawX() <= (getX() + left.getBounds().width())) && mDrawableLeftListener != null) {
mDrawableLeftListener.onDrawableClick();
return true;
}
break;
}
return super.onTouchEvent(event);
}
public void setDrawableRightListener(DrawableListener l) {
mDrawableRightListener = l;
}
public void setDrawableLeftListener(DrawableListener l) {
mDrawableLeftListener = l;
}
public interface DrawableListener {
public void onDrawableClick();
}
设置焦点变化监听:
//设置焦点变化监听
mEtPhone.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
mEtPhone.setCompoundDrawables(phoneDrawableLeft, null, phoneDrawableRight, null);
} else {
mEtPhone.setCompoundDrawables(phoneDrawableLeft, null, null, null);
}
}
});
自动弹出键盘:
//弹出键盘
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
相关文章推荐
- Android EditText组件drawableLeft属性设置的图片和hint设置的文字之间的距离
- EditText组件drawableLeft属性设置的图片和hint设置的文字之间的距离
- EditText组件drawableLeft属性设置的图片和hint设置的文字之间的距离
- TextView中设置drawableLeft、drawableRight时设置图片的大小方法
- EditText设置DrawableRight,DrawableLeft,DrawableTop... 点击事件
- EditText——右边图片drawableRight的点击事件
- (五十五)用android:drawableRight设置带图片的TextView的实现
- android EditText 设置弹出数字输入法键盘
- 设置edittext 弹出键盘回车类型
- 【Android基础】EditText键盘搜索事件设置和监听
- Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性添加图标
- TextView 代码设置drawableLeft、drawableRight、drawableTop、drawableBottom
- android EditText 设置弹出数字输入法键盘
- 关于在TextView中设置DrawableLeft,DrawableRight等不显示的问题
- android EditText设置弹出数字输入法键盘
- EditText设置不自动弹出键盘
- 给Button或TextView设置drawableLeft图片(左图标)
- Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性添加图标
- 设置drawableTop、drawableLeft、drawableRight、drawableBottom图片大小
- EditText获取焦点不自动弹出键盘设置