现在的位置: 首页 > 综合 > 正文

EditText中添加和删除bitmap

2018年02月10日 ⁄ 综合 ⁄ 共 1105字 ⁄ 字号 评论关闭

    SpannableString mSpan1 = new SpannableString("1");

/*

* this is add bitmap on edit text

*/

    private void displayBitmapOnText(Bitmap thumbnailBitmap) {

if(thumbnailBitmap == null)

return;

        int start = mEditText.getSelectionStart();
        mSpan1.setSpan(new ImageSpan(thumbnailBitmap) , mSpan1.length() - 1, mSpan1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//        mSpan1.toString();
        if(mEditText != null) {
            Editable et = mEditText.getText();
            et.insert(start, mSpan1);
            mEditText.setText(et);
            mEditText.setSelection(start + mSpan1.length());
        }
        mEditText.setLineSpacing(10f, 1f);

}

/*

* this is delete bitmap on edit text

* from end to start

*/

    private void deleteEditTextSpan() {
        Spanned s = mEditText.getEditableText();
        ImageSpan[] imageSpan = s.getSpans(0, s.length(), ImageSpan.class); 
        
        for (int i = imageSpan.length - 1; i >= 0; i--) {
            if(i == imageSpan.length - 1) {
                int start = s.getSpanStart(imageSpan[i]);
                int end = s.getSpanEnd(imageSpan[i]);
                Editable et = mEditText.getText();
                et.delete(start, end);
            }
        }
        mEditText.invalidate();
    }

ps:关于删除,网上找了很多都是直接调用软键盘,然后再来删除。这种不是我想要的,这个deleteEditTextSpan() 由一个自定义的按键触发。

抱歉!评论已关闭.