zoukankan      html  css  js  c++  java
  • Android显示表情对话框

    final EditText editface=(EditText) this.findViewById(R.id.EditText);
    List<Map<String,Object>> list=getGridData();
            GridView grid=(GridView) View.inflate(this,R.layout.pop, null).findViewById(R.id.gridview);;
            grid.setAdapter(new MyAdapter(this, list));
            final Dialog dialog=new Dialog(this, R.style.FullScreenDialog);
            dialog.setContentView(grid);
    
                    dialog.show();
    
    
    grid.setOnItemClickListener(new OnItemClickListener() 
            {
                public void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) 
                {
                    String html="<img src="+list.get(position).get("name")+" />";
                    
                    CharSequence Text=Html.fromHtml(html, new ImageGetter() 
                    {
                        public Drawable getDrawable(String source) 
                        {
                            Drawable drawable=getResources().getDrawable(getResourceID(source));
                            drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
                            return drawable;
                        }
                    }, null);
                    
                   
                    dialog.dismiss();
                   
                    editface.append(Text);
                }
            });
    
    
    
        //根据资源的名字找到他的Id号
        public int getResourceID(String name)
        {
            System.out.println(name);
            try 
            {
                Field field=R.drawable.class.getField(name);
                
                return Integer.valueOf(field.getInt(name));
            } catch (Exception e)
            {
                e.printStackTrace();
            }
            return 0;
            
        }
    
        public List<Map<String,Object>> getGridData()
        {
            List<Map<String,Object>> list=new ArrayList<Map<String,Object>>(); 
            try 
            {
                Field[] field=R.drawable.class.getFields();
                for(Field f:field)
                {
                    
                        if(f.getName().indexOf("f0")!=-1)
                        {
                            Map<String, Object> map=new HashMap<String,Object>();
                            int id=f.getInt(R.drawable.class);
                            map.put("image", id);
                            //src中的图片的名字必须在drawable中存在该图片
                            map.put("name", f.getName().toString());
                            list.add(map);
                        }
                    
                }
            }catch (Exception e) {
                e.printStackTrace();
            }
            return list;
        }

     效果图:

  • 相关阅读:
    如何配置MySQL
    软件工程第三次作业
    软件工程第二次作业
    软件工程第一次作业
    Python 【面试总结】
    Vue【你知道吗?】
    Python 【面试强化宝典】
    Python 【基础面试题】
    Vue 【前端面试题】
    Redis 【常识与进阶】
  • 原文地址:https://www.cnblogs.com/tianshidechibang234/p/3260351.html
Copyright © 2011-2022 走看看