copying and pasting image in Edittext

2019-04-06 01:31发布

I am on the project RichTextEditor and completed almost all functionality. I can insert image and can save the file with image and also getting the image and all styles while opening the file again.I am stuck at one point ie. when copying all the content of the Edittext, while pasting except Image all things got paste, but in image area i got like this enter image description here

any idea or workaround to copy and paste the image. Thanks.

2条回答
ら.Afraid
2楼-- · 2019-04-06 02:26

Did you check the content on the clipboard? How is the image handled in the clipboard? You will have to make your RichTextView handle the paste operation (is the image copied as a bimap / are you referencing a path to the bitmap) from the clipboard.

查看更多
可以哭但决不认输i
3楼-- · 2019-04-06 02:37

I have the same problem. After get the editText field's string, I find the "obj" character, and then replace it with image's link. I created a ArrayList to store the images' links. And moreover, I think I need to catch the delete action. If an image is deleted, I deleted its link in the image list. Below is the code I use to replace the "obj" character.

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;
}

Overall, I do not think the way I did is the best way to solve the problem. The best way probably will be to create a custom field to handle it.

查看更多
登录 后发表回答