android byte转换成drawble,首先把xml拷贝到data/data/package下在用byte 转换成drawable就可以了

解决方案 »

  1.   

    能不能具体点说下  toDrawable方法
      

  2.   

    楼主用Drawable的静态方法createFromXml()试试:
    public static Drawable createFromXml (Resources r, XmlPullParser parser)以下是简单的例子代码,原理就是把xml文件读取出来到FileReader对象中,然后再作为XmlPullParser对象的输入流即可。
     
    XmlPullParser xmlParser = null;
            File file = new File("your storage xml file path");        FileReader fileReader = null;
            try {
                fileReader = new FileReader(file);
                xmlParser = Xml.newPullParser();
                xmlParser.setInput(fileReader);
                Drawable drawable = Drawable.createFromXml(getResources(), xmlParser);
             
            } catch (FileNotFoundException e) {
              
            } catch (Exception e) {
                
            } finally {
                try {
                    if (fileReader != null) {
                        fileReader.close();
                    }
                } catch (IOException e) {
                }
            }
      

  3.   

    http://blog.sina.com.cn/s/blog_4607d856010125sl.html你下载得到的文件转化为byte,再由byte转化为drawable再转化为bitmap 
      

  4.   

    http://blog.sina.com.cn/s/blog_4607d856010125sl.html你下载得到的文件转化为byte,再由byte转化为drawable再转化为bitmap 这个对下载的图片资源才可用,对xml文件不管用。下载的。9.png试过也有问题,draw9patch的资源,NinePatchDrawable构造方法后,边角变小了,
      

  5.   

      Drawable.createFromXml方法应该是用于内部xml,使用res中的drawable id没有问题,照搬你的代码,解析外面的文件会有异常,返回空
      

  6.   

    简单来说,你就是通过二进制读取文件,在Android里生成对应的Bitmap就OK了
      

  7.   

    xmlParser = Xml.newPullParser(); 和 Drawable.createFromXml(getResources(), xmlParser);
    中的xmlParser 类型其实是不匹配的,我跟了源代码。最终返回的drawable是空的。如果我自己写一个解析类,似乎太难了。不过现在客户的需求降低了,只需要简单的设置颜色线条等。现在是遇到了新的问题是
    GradientDrawable 中有两个方法setColors(int[] colors) setOrientation() 是API Level16添加的,我需要支持到2.3  似乎得自己写这两个方法,不过这是新的另外的问题了。感谢 ncepu307