问题分析: java
须要将app内的图片分享到社交网络中去。为了减轻开发任务,我直接使用社交网站官网提供的SDK进行开发,而是使用第三方已经将各社交网站SDK集成到一块儿的SDK。 android
经过查阅第三方SDKAPI发现,分享图片所调用的方法须要图片在本地中的存放路径做为参数,可是我所操做的图片是存在android工程项目中的res文件夹中的,当编译成apk的时候这些文件都会变成二进制流。 网络
解决方案: app
将二进制流变成Bitmap对象,将Bitmap对象经过png格式图片文件保存在手机中,以后将存放路径做为参数提供给第三方接口便可。 网站
把res内二进制流变成Bitmap对象方法: code
Resources res = getResources(); int id_=res.getIdentifier("imgcontent" + resId, "drawable", getPackageName()); Bitmap bitmap=BitmapFactory.decodeResource(res, id_);将Bitmap对象存一png格式存在手机中的方法:
File f = new File("/sdcard/baikeImage"+".png"); f.createNewFile(); FileOutputStream fOut = null; try { fOut = new FileOutputStream(f); } catch (FileNotFoundException e) { e.printStackTrace(); } bitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut); try{ fOut.flush(); } catch (IOException e) { e.printStackTrace(); } try { fOut.close(); } catch (IOException e) { e.printStackTrace(); }
这样就能够将res中额图片分享到网络中了。 orm