Android:如何将ImageSpan drawable与XML资源drawable进行比较?

时间:2015-08-27 11:22:52

标签: java android android-drawable emoji imagespan

我有一个问题,我找不到答案太长时间,如果你能提供帮助,我将不胜感激。

我有一个TextEdit,我在文本之间添加了图标(Emojis)。 图标存储在名为imagesInTxt的ImageSpan []数组中。 然后我遍历ImageSpan [],我试图比较它的drawable或它可以从XML提供给资源的任何常量值,例如:R.Drawable.Smiley首先用作图标。

问题是从getResources()。getDrawable(R.Drawable.smiley)返回的唯一标识符与我从imagesInTxt [x] .getDrawable()获得的标识符不匹配,尽管我们谈论的是相同的图标完全正确。

我不希望也看不到使用.SetTag()和.GetTag()的方法因为我在EditText中处理ImageSpan []而不是按钮本身,所以这个解决方案没有帮助我

我不想将ImageSpan []直接与ImageView按钮进行比较。我需要以任何可能的方式将它与我使用的原始资源(例如:R.Drawable.xxxx)进行比较。

我怎样才能实现这一目标? 如果不可能,你可以建议什么作为替代解决方案?

ImageSpan[] imagesInTxt = txt.getSpans(0, txt.length(), ImageSpan.class);

for (int x = 0; x < itemSpans.length; x++) { // Go through the ICONS

        Drawable myIcon = getResources().getDrawable(R.Drawable.smiley);            

            if(imagesInTxt[x].getDrawable().equals(myIcon)) {               
                Icon = ";-)";
            }

myIcon = getResources().getDrawable(R.drawable.sad);

if(imagesInTxt[x].getDrawable().equals(myIcon)) {               
                Icon = ";-(";
            }

}

0 个答案:

没有答案