return false; if (event.getX() > et.getWidth() - et.getPaddingRight() - x.getIntrinsicWidth()) { et.setText(""); et.setCompoundDrawables(null, null, null, null);
return false; if (event.getX() > et.getWidth() - et.getPaddingRight() - x.getIntrinsicWidth()) { et.setText(""); et.setCompoundDrawables(null, null, null, null);
EditText input = findViewById(R.id.imageDescriptionTextEdit) // Your EditText final Paint paint = input.getPaint(); float textWidth = paint.measureText(input.getText().toString()); if (textWidth > input.getWidth()) { // Prevent further input. }
public void run() { keystoreFile.setDropDownWidth(keystorePassword.getWidth()); } });
@Override public boolean onTouch(View view, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_UP) { if (dialog.editText.getCompoundDrawables()[2] != null) { boolean touchable = event.getX() > (dialog.editText.getWidth() - dialog.editText.getTotalPaddingRight()) && (event.getX() < ((dialog.editText.getWidth() - dialog.editText.getPaddingRight()))); if (touchable) { dialog.editText.setText(""); } } } return false; } });
EditText editText = new EditText(this); editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { String ellipseString = TextUtils.ellipsize(s, editText.getPaint(), editText.getWidth(), TextUtils.TruncateAt.END, false, new TextUtils.EllipsizeCallback() { @Override public void ellipsized(int start, int end) { } }).toString(); if (ellipseString.contains("\u2026")) { Log.d(TAG, "ellipse"); } } });
@Override public void onSuccess(String aid) { Log.v("===", "upload success aid:" + aid); handler.insertImage(aid, new BitmapDrawable(getResources(), returnBitmap), edContent.getWidth() - DimenUtils.dip2px(NewPostActivity.this, 16)); }
private EditText mEditText; private Rect mRect = new Rect(); @Override public boolean dispatchTouchEvent(MotionEvent ev) { final int action = MotionEventCompat.getActionMasked(ev); int[] location = new int[2]; mEditText.getLocationOnScreen(location); mRect.left = location[0]; mRect.top = location[1]; mRect.right = location[0] + mEditText.getWidth(); mRect.bottom = location[1] + mEditText.getHeight(); int x = (int) ev.getX(); int y = (int) ev.getY(); if (action == MotionEvent.ACTION_DOWN && !mRect.contains(x, y)) { InputMethodManager input = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); input.hideSoftInputFromWindow(mEditText.getWindowToken(), 0); } return super.dispatchTouchEvent(ev); }
||(viewSide.equals("right")&&event.getX() > et.getWidth() - et.getPaddingRight() - x.getIntrinsicWidth())) { Drawable x3 = viewMode.equals("never")?null:viewMode.equals("always")?x:viewMode.equals("editing")?null:viewMode.equals("unlessEditing")?x:null; et.setText("");
@Override public void onGlobalLayout() { widthEditText = editText.getWidth();
final TouchLayout root = (TouchLayout) findViewById(R.id.root); final EditText text = (EditText) findViewById(R.id.text); final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); root.setOnInterceptTouchEventListener(new OnInterceptTouchEventListener() { @Override public boolean onInterceptTouchEvent(MotionEvent event) { final View v = getCurrentFocus(); if(v != null && v.equals(text)) { final int screenCords[] = new int[2]; text.getLocationOnScreen(screenCords); final Rect textRect = new Rect(screenCords[0], screenCords[1], screenCords[0] + text.getWidth(), screenCords[1] + text.getHeight()); if(!textRect.contains(event.getRawX(), event.getRawY() { imm.hideSoftInputFromWindow(myTextview.getWindowToken(), 0); // Optionally you can also do the following: text.setCursorVisible(false); text.clearFocus(); } } return false; } };
//offset is used if you want the text to be downsized before it reaches the full editTextWidth //fontChangeStep defines by how much SP you want to change the size of the font in one step //maxFontSize defines the largest possible size of the font (in SP units) you want to allow for the given EditText public void changeFontSize(EditText editText, int offset, int maxFontSize, int fontChangeSizeStep) { int editTextWidth = editText.getWidth(); Paint paint = new Paint(); final float densityMultiplier = getBaseContext().getResources().getDisplayMetrics().density; final float scaledPx = editText.getTextSize(); paint.setTextSize(scaledPx); float size = paint.measureText(editText.getText().toString()); //for upsizing the font // 15 * densityMultiplier is subtracted because the space for the text is actually smaller than than editTextWidth itself if(size < editTextWidth - 15 * densityMultiplier - offset) { paint.setTextSize(editText.getTextSize() + fontChangeSizeStep * densityMultiplier); if(paint.measureText(editText.getText().toString()) < editTextWidth - 15 * densityMultiplier - offset) //checking if after possible upsize the text won't be too wide for the EditText if(editText.getTextSize()/densityMultiplier < maxFontSize) editText.setTextSize(TypedValue.COMPLEX_UNIT_SP, editText.getTextSize()/densityMultiplier + fontChangeSizeStep); } //for downsizing the font, checking the editTextWidth because it's zero before the UI is generated while(size > editTextWidth - 15 * densityMultiplier - offset && editTextWidth != 0) { editText.setTextSize(TypedValue.COMPLEX_UNIT_SP, editText.getTextSize()/densityMultiplier - fontChangeSizeStep); paint.setTextSize(editText.getTextSize()); size = paint.measureText(editText.getText().toString()); } }
EditText t = ... int maxWidth = t.getWidth() - t.getPaddingLeft() - t.getPaddingRight(); t.setFilters(new InputFilter[]{new TextSizeFilter(t.getPaint(), maxWidth)});
private void editBubbleEditPosition() { if (isEditing) { editText.setX(Math.min(bubble.getX(), getWidth() - editText.getWidth())); editText.setY(bubble.getY()); final ViewGroup.LayoutParams params = editText.getLayoutParams(); params.width = (int) bubble.width; params.height = (int) bubble.getHeight(); editText.setLayoutParams(params); editText.animate().alpha(1f); } }