Подтвердить что ты не робот

Копирование и вставка изображения в Edittext

Я работаю над проектом RichTextEditor и выполнил почти все функции. Я могу вставить изображение и сохранить файл с изображением, а также получить изображение и все стили при открытии файла снова. Я застрял в одной точке, то есть. при копировании всего содержимого Edittext при вставке, кроме Image, все вещи получили пасту, но в области изображения я получил вот это enter image description here

любая идея или обходной путь для копирования и вставки изображения. Спасибо.

4b9b3361

Ответ 1

У меня та же проблема. После получения строки поля editText, я нахожу символ "obj", а затем заменяю его ссылкой на изображение. Я создал ArrayList для хранения ссылок изображений. И более того, я думаю, мне нужно поймать действие удаления. Если изображение удалено, я удалил его ссылку в списке изображений. Ниже приведен код, который я использую для замены символа "obj".

private String replaceSpecialCharactorFromNote(){
    String noteString = edt_note.getText().toString();
    char[] noteCharacters = noteString.toCharArray();
    for(int i=0; i<noteCharacters.length; i++){
        if((int)noteCharacters[i] <1 || (int)noteCharacters[i]>254 ){//compare the ascii code
            Log.i("the first abnormal charactor is ", "" + noteCharacters[i]);
            if(imageIndex < imgsList.size()){
                Log.i("replace triggered", "special char index is "+i);
                Log.i("replace triggered", "replaced image index is "+imageIndex);
                Log.i("replace triggered", "image is "+imgsList.get(imageIndex));
                String beforeString = noteString.substring(0, i);
                String afterString = noteString.substring(i+1);
                noteString = beforeString + imgsList.get(imageIndex) + afterString; 
                Log.i("replace triggered", "note is "+noteString);
            }
            imageIndex++;
        }
    }
    return noteString;
}

В целом, я не думаю, что способ, которым я это сделал, - лучший способ решить проблему. Лучшим способом, вероятно, будет создание настраиваемого поля для его обработки.

Ответ 2

Вы проверяли содержимое в буфере обмена? Как изображение обрабатывается в буфере обмена? Вам нужно будет заставить RichTextView обрабатывать операцию вставки (изображение скопировано как бимап/ссылается на путь к растровому изображению) из буфера обмена.