我正在尝试创建自定义键盘,并在android SDK中使用“SoftKeyboard”示例。我对该示例进行了少量修改并创建了我的自定义键盘。我可以将此自定义键盘与我的Android设备的默认消息应用程序一起使用。
现在,我想单击自定义键盘中的按钮,并在键入SMS时添加图像。我注意到“SoftKeyBoard.java”类(String Builder
)中有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”附加到String构建器,如下所示,
mComposing.append(imageDataString);
但是我有很多角色,而不是图像。 当我使用键盘输入短信时是否可以插入图像?
已更新:我使用了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的文本。然后它显示图像。但它不适用于Messaging应用程序。如果我可以设置Messaging应用程序EditText,我想我可以设置图像。
有没有办法访问和更新消息应用的编辑文本? 在此先感谢.. !!
答案 0 :(得分:1)
我认为您要做的是使用添加到ImageSpan
的{{1}},这是一个已经描述过here的解决方案。按下键盘上的图像按钮后,您将触发一个方法,该方法应通过从中获取现有文本来更新Spannable
,添加包含图像的editText
并将其设置回{ {1}}。