5

我正在尝试创建一个自定义键盘并在 android SDK 中使用“SoftKeyboard”示例。我对该示例进行了一些修改并创建了我的自定义键盘。我可以将此自定义键盘与我的 Android 设备的默认消息应用程序一起使用。

现在我想在我的自定义键盘中单击一个按钮,并在我键入 SMS 时添加一个图像。我注意到String Builder“SoftKeyBoard.java”类(private StringBuilder mComposing = new StringBuilder())中有,当我们使用键盘输入字母时,它会附加字符。

我试图附加我的 SD 卡的图像,如下所示,

        String imageDataString = "";

        String path = Environment.getExternalStorageDirectory().toString() + "/SamplePictures/";
         File file = new File(path, "myimage.jpg");
         try {

             FileInputStream imageInFile = new FileInputStream(file);
             byte imageData[] = new byte[(int) file.length()];
             imageInFile.read(imageData);

             // Converting Image byte array into Base64 String
             imageDataString = encodeImage(imageData);



            imageInFile.close();

         } catch (FileNotFoundException e) {
             System.out.println("Image not found" + e);
         } catch (IOException ioe) {
             System.out.println("Exception while reading the Image " + ioe);
         }

我将“imageDataString”附加到字符串生成器,如下所示,

mComposing.append(imageDataString);

但是我得到了这么多字符,而不是图像。使用键盘输入 SMS 时是否可以插入图像?

更新:我将 ImageSpan 和 Spannable 与以下代码一起使用。

SpannableStringBuilder ssb = new SpannableStringBuilder( "Here's a my picture  " );
            Bitmap smiley = BitmapFactory.decodeResource( getResources(), R.drawable.bitmap );
            ssb.setSpan( new ImageSpan( smiley ), 16, 17,Spannable.SPAN_INCLUSIVE_INCLUSIVE );
            mComposing.append(ssb);

但它只显示“这是我的照片”,没有图像。我创建了一个带有 EditText 的示例单独应用程序,并将“ssb”变量设置为该 EditText 的文本。然后它很好地显示图像。但它不适用于消息传递应用程序。如果我可以设置消息应用程序 EditText,我想我可以设置图像。

有什么方法可以访问和更新消息应用程序的编辑文本?提前致谢..!!

4

1 回答 1

1

我认为您想要做的是使用ImageSpan添加到 aSpannable的解决方案,该解决方案已在此处描述。按下键盘上的图像按钮后,您将触发一个方法,该方法应该editText通过从中获取现有文本来更新 ,添加ImageSpan包含您的图像并将其设置回editText.

于 2013-02-27T11:40:28.720 回答