在Android 4.x中插入一个ImageSpan后,EditText中出现重复的图像

时间:2015-07-15 03:45:10

标签: android bitmap android-edittext imagespan

我有以下代码片段将位图插入 public void SetDocumentProperty(string propertyName, string propertyValue) { try { _excelApp = new Application(); workBk = _excelApp.Workbooks.Open(@"C:\12345.xlsx", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); object oDocCustomProps = workBk.CustomDocumentProperties; Type typeDocCustomProps = oDocCustomProps.GetType(); object[] oArgs = {propertyName,false, MsoDocProperties.msoPropertyTypeString, propertyValue}; typeDocCustomProps.InvokeMember("Add", BindingFlags.Default | BindingFlags.InvokeMethod, null, oDocCustomProps, oArgs); } catch { object customProperties = workBk.CustomDocumentProperties; Type customPropertiesType = customProperties.GetType(); // Retrieve the specific custom property item object customPropertyItem = customPropertiesType.InvokeMember("Item", BindingFlags.Default | BindingFlags.GetProperty, null, customProperties, new object[] { propertyName }); Type propertyNameType = customPropertyItem.GetType(); propertyNameType.InvokeMember("Value", BindingFlags.Default | BindingFlags.SetProperty, null, customPropertyItem, new object[] { propertyValue }); } finally { workBk.Save(); workBk.Close(false, @"C:\12345.xlsx", null); Marshal.ReleaseComObject(workBk); } } 窗口小部件。使用 Android 5.x ,它可以正常工作,但使用 Android 4.x ,插入一个位图后会显示重复的图像。任何人都知道如何解决这个问题 Android 4.x

EditText

2 个答案:

答案 0 :(得分:2)

这是由setBounds中设置的高度大于可从活动中较早创建drawable的Bitmap引起的。当发生这种情况时,似乎发生了两件事......

首先,如果尺寸只是略微(我没有经过广泛的测试,一旦我开始工作,所以我不确定精确的数字)超过了Bitmap的大小,那么就会增加一个大的空白区域跨度,此空白区域与插入的位图大小相同。

其次,Drawable的额外副本将添加到跨度,直接位于空格下方。

分辨率相对简单。确保在创建Drawable和调用setBounds之前,用于创建Drawable的Bitmap设置为预期的最终大小。

这可能不适用于所有情况,但对我有用,并希望对某人有所帮助。

答案 1 :(得分:0)

我还注意到,如果跨度字符串有换行符,则会重复显示图像。