zoukankan      html  css  js  c++  java
  • android获取项目下的一张图片的绝对路径问题以及解决方法

    思路如下:

    1、把图片放到项目下的assets文件夹下。

    2、通过一个方法将该文件夹下面的文件转换成为一个输入流。

    3、将输入流转换成为一个字节数组。

    4、创建一个输出流,将byte[]写入到sd卡中(此时自己可以对原来的图片重新命名)

    5、通过Environment类中的一些方法就可以获取String类型的绝对路径了。


    代码实现如下:

      1. private byte[] InputStreamToByte(InputStream is) throws IOException {  
      2.         ByteArrayOutputStream bytestream = new ByteArrayOutputStream();  
      3.         int ch;  
      4.         while ((ch = is.read()) != -1) {  
      5.             bytestream.write(ch);  
      6.         }  
      7.         byte imgdata[] = bytestream.toByteArray();  
      8.         bytestream.close();  
      9.         return imgdata;  
      10.  }  
      11. /** 
      12.  *  
      13.  * @param bs 
      14.  * 把字节数组写到SDCard中,然后再读取该图片 
      15.  */  
      16. public void writetoSDCard(byte []bs){  
      17.     try {  
      18.         FileOutputStream out=new FileOutputStream(new File("/sdcard/test.png")); //重新命名的图片为test.png.想要获取的图片的路径就是该图片的路径  
      19.         try {  
      20.             out.write(bs);  
      21.             out.flush();  
      22.             out.close();  
      23.         } catch (IOException e) {  
      24.             // TODO Auto-generated catch block  
      25.             e.printStackTrace();  
      26.         }  
      27.     } catch (FileNotFoundException e) {  
      28.         // TODO Auto-generated catch block  
      29.         e.printStackTrace();  
      30.     }  
      31. }  
      32.   
      33. public void sendImgFriend(){  
      34.     InputStream abpath=getClass().getResourceAsStream("/assets/picture/logo.png");  
      35.   
      36.         try {  
      37.             writetoSDCard(InputStreamToByte(abpath));  
      38.               
      39.         } catch (IOException e) {  
      40.             // TODO Auto-generated catch block  
      41.             e.printStackTrace();  
      42.         }  
      43. String path_img=Environment.getExternalStorageDirectory().getAbsolutePath()+/test.png; 
  • 相关阅读:
    两个list,并集、交集、差集
    关于apt-get install
    异步进程池
    获取cpu信息
    print重定向
    使用pandas操作excel
    排列组合,取所有可能性
    list_反转,切片,删除,升序降序
    抠图
    enumerate()函数的用法
  • 原文地址:https://www.cnblogs.com/mgstone/p/5830816.html
Copyright © 2011-2022 走看看