主要是只有一个名字,(aa.jpg)只有aa怎么来显示图片呢?drawable中放的有aa.jpg图片。aa是数据库读出来的...

解决方案 »

  1.   

    Resources resources = getContext().getResources(); 
    Drawable btnDrawable = resources.getDrawable(R.drawable.layout_bg);(控件).setBackgroundDrawable(btnDrawable);
      

  2.   

    我说的是用aa这个字符串,怎么得到drawable存放的aa.jpg这个图片。
      

  3.   

    那你得自己建立映射关系,因为android资源是build后自动生成的id,这个是死的,但是id名是以图片的名字命名的,所以你要自己建立map
      

  4.   

    String img=person.getImg();
    img的值是:aa
    我在drawable中存放了aa.jpg.
    现在怎么用img去获取到drawable中的aa.jpg....急需...
      

  5.   

    我直接R.drawable.aa不行,String类型的值,不能转换成int。强转了也没用...
    求代码,谢谢....项目急需....
      

  6.   


    建立一个map
    map.put("aa",r.drawable.aa);
    map.put("bb",r.drawable.bb);
    把数据库中所有图片都做个映射,不过这样程序写的太烂了,还可以想想好办法 不过就是这个思路,或者是想一想可不可以存的时候把他在R里的ID给存了
      

  7.   

    你可以先获得drawable中图片的名称:
    if(“aa”== view.getResources().getResourceName(resid));
     
    如果上述的方法得到的是aa, 就可以显示了啊。
      

  8.   

    如果每次都要对图片的ID进行判断的话,真的要判断N次呢...
    但是谢谢我图片少,就先这样用着吧。
    大家想想有没有什么好的方法?
      

  9.   


     String img="not";
    HashMap<String, Object> imgmap = new HashMap<String, Object>(); 
    imgmap.put(img, "R.drawable."+img);
      //生成动态数组,并且转入数据   
          ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();   
          for(int i=0;i<5;i++)   
          {   
            HashMap<String, Object> map = new HashMap<String, Object>();   
            map.put("ItemImage", imgmap.get(img));//添加图像资源的ID   
            map.put("ItemText", "NO."+String.valueOf(i));//按序号做ItemText   
            lstImageItem.add(map);   
          }  这样我测试了下,还是不行啊。真郁闷...
      

  10.   

       imgmap.put(img, "R.drawable."+img);大哥你这传的是字符串
      

  11.   

    想办法获取到图片的二进制流,即InputStream对象。然后,调用BitmapFactory的静态方法:decodeStream,它会返回一个Bitmap,然后再用这个Bitmap实例化一个BitmapDrawable即可。
    获得图片二进制流的办法:
    1、把图片放到assets文件夹中,用AssetManager的open方法来读取。
    2、还没想出来...
      

  12.   

    大哥,我要代码...
    说的太抽象...
    图片放在drawable那里的,不是我能控制的...
    现在只能取到它的名称(aa,数据库读到的),我的问题是怎么用aa来取得drawable目录下的aa.jpg.
    给段代码谢谢...
      

  13.   

    我知道是字符,那你教教我把aa变成int啊,别说转换什么的。我都试了,跟R.drawable连接不到一起的..
      

  14.   


    String img="note";
    AssetManager asm=getAssets();
    InputStream is = null;
    try {
    is = asm.open(img);
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }//name:图片的名称  //获得Drawable 
    Drawable da = Drawable.createFromStream(is, null); 
    //获得Bitmap 
    Bitmap bitmap=BitmapFactory.decodeStream(is);    //生成动态数组,并且转入数据   
          ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();   
          for(int i=0;i<5;i++)   
          {   
            HashMap<String, Object> map = new HashMap<String, Object>();   
            map.put("ItemImage", bitmap);//添加图像资源的ID   
            map.put("ItemText", "NO."+String.valueOf(i));//按序号做ItemText   
            lstImageItem.add(map);   
          }   这样也不行....
      

  15.   

    你数据库怎么存的???你数据库直接存图片就可以了。。还这么纠结晕死。。给你看段代码。。
    public static final String TABLECONTACTS = "create table contacts("
    + "_id INTEGER PRIMARY KEY," + "name TEXT  NOT NULL,"
    + "contactIcon BLOB," + "telPhone TEXT NOT NULL,"
    + "groupName TEXT," + "birthday TEXT," + "address TEXT,"
    + "email TEXT NOT NULL," + "description TEXT NOT NULL,"
    + "createTime TEXT," + "modifyTime TEXT" + ");";
    public static final String TABLEGROUPS = "create table groups("
    + "_id INTEGER PRIMARY KEY," + "groupName TEXT UNIQUE NOT NULL,"
    + "createTime TEXT," + "modifyTime TEXT" + ");";public long inserDataToContacts(MyContacts contactInfo) {
    String formatTime = getSysNowTime();
    ContentValues content = new ContentValues();
    content.put("name", contactInfo.getName());
    content.put("birthday", contactInfo.getBirthday());
    content.put("address", contactInfo.getAddress());
    content.put("telPhone", contactInfo.getTelPhone());
    content.put("email", contactInfo.getEmail());
    content.put("contactIcon", contactInfo.getContactIcon());
    content.put("description", contactInfo.getDescription());
    content.put("groupName", contactInfo.getGroupName());
    content.put("createTime", formatTime);
    content.put("modifyTime", formatTime);
    return mSQLiteDatabase.insert(TABLE_CONTACTS, null, content); }
    MyContacts contactAllInfoCache=null;
    BitmapDrawable bd=(BitmapDrawable)mEditor.getDrawable();
    Bitmap bitMap=bd.getBitmap();
    contactAllInfoCache.setContactIcon(getBitmapByte(bitMap));取的时候就
    contactIcon.setImageBitmap(getBitmapFromByte(cursor
    .getBlob(icon_index)));
      

  16.   

    它问题是这个不是SQLite读出来的,是从服务器端的SQL 2005读出来的图片名称,然后根据这个图片名称取到drawable中相应的图片,这个逻辑就是这样的。我有什么办法。SQL 2005又不能像SQLite 一样保存图片。但是还是谢谢...我自己在慢慢看看,各位兄弟姐妹们也给帮帮忙...老板给期限了,一个工作日搞定.我晕死了,说这么点问题我还弄那么久...唉
      

  17.   


    Class<drawable> cls = R.drawable.class;
    try {
    Integer value = cls.getDeclaredField("aa").getInt(null);
                            Log.v("value",value.toString());
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
      

  18.   

    public int getIdentifier (String name, String defType, String defPackage)干嘛那么麻烦!直接用这个就行