Android 在EditText中的笑脸,带有FromHtml,显示符号而不是图像

Android 在EditText中的笑脸,带有FromHtml,显示符号而不是图像,android,image,gridview,android-edittext,Android,Image,Gridview,Android Edittext,我正在尝试将图像插入到EditText,我的图像ID存储在整数列表中。。。 我显示一个包含所有微笑的GridView,当用户选择微笑时,我使用以下方法: gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { gridView.setO

我正在尝试将图像插入到
EditText
,我的图像ID存储在整数列表中。。。 我显示一个包含所有微笑的
GridView
,当用户选择微笑时,我使用以下方法:

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
 public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
gridView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
并将索引传递到ID列表,然后获取ID,并将其发布到FromHtml:

代码如下:

 gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            int p;
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                  p=i;
                   Html.ImageGetter imgg= new Html.ImageGetter() {
                    public Drawable getDrawable(String source) {
                        Log.d("SOMAA","source= "+source);
                        Log.d("SOMAA","Arrived index = "+p);
                        Log.d("SOMAA","ID = "+SmilesList[p]);
                        Drawable   d =   Massenger_frag.this.getResources().getDrawable(SmilesList[p]);

                        if (d != null) {
                            d.setBounds(0,0,d.getIntrinsicWidth(),d.getIntrinsicHeight());
                        }
                        Log.d("SOMAA","d = "+d);

                        return d;

                    }
                };
                indexSmile=i;
                Log.d("SOMAA","index = " + i+ " OR "+ indexSmile);
         //       ImageView imv= (ImageView) view.findViewById(SmilesList[indexSmile]);
                Spanned smiletxt = Html.fromHtml("<img src='" + getResources().getDrawable(SmilesList[indexSmile])+"'/>",imgg,null);
                Log.d("SOMAA","Smile text= "+smiletxt);
               EditText msgt = (EditText) getView().findViewById(R.id.MessageInMessanger);
               String str = msgt.getText().toString();

                str+= smiletxt;
                msgt.setText(str);
            }
        });
gridView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
INTP;
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
p=i;
Html.ImageGetter imgg=新建Html.ImageGetter(){
公共可绘制getDrawable(字符串源){
Log.d(“SOMAA”,“source=“+source”);
Log.d(“SOMAA”,“到达索引=”+p);
Log.d(“SOMAA”,“ID=“+SmilesList[p]);
Drawable d=Massenger_frag.this.getResources().getDrawable(SmilesList[p]);
如果(d!=null){
d、 setBounds(0,0,d.getIntrinsicWidth(),d.getIntrinsicHeight());
}
Log.d(“SOMAA”,“d=“+d”);
返回d;
}
};
指数英里=i;
Log.d(“SOMAA”、“index=“+i+”或“+indexmile”);
//ImageView imv=(ImageView)view.findViewById(SmilesList[indexmile]);
span smileText=Html.fromHtml(“,imgg,null);
Log.d(“SOMAA”,“Smile text=“+smileText”);
EditText msgt=(EditText)getView().findViewById(R.id.MessageInMessanger);
字符串str=msgt.getText().toString();
str+=smiletxt;
msgt.setText(str);
}
});
问题是: 我看到的不是微笑,而是编辑文本中的符号[obj]


为什么?我该如何解决这个问题呢!

你有没有尝试过用
text.setCompoundDrawables()
或ImageSpan来代替html?没有,但我发现(我使用的)这种方式很简单明了,但我想知道为什么它会显示[obj]符号而不是smily(即:Smyily01.png)