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; 
  • 相关阅读:
    归并排序
    1、钢条切割问题
    webdriver高级应用- 使用日志模块记录测试过程中的信息
    webdriver高级应用- 测试过程中发生异常或断言失败时进行屏幕截图
    webdriver高级应用- 浏览器中新开标签页(Tab)
    webdriver高级应用- 高亮显示正在操作的页面元素
    webdriver高级应用- 精确比较页面截图图片
    webdriver高级应用- 操作富文本框
    webdriver高级应用- 启动带有用户配置信息的firefox浏览器窗口
    webdriver高级应用- 操作日期控件
  • 原文地址:https://www.cnblogs.com/mgstone/p/5830816.html
Copyright © 2011-2022 走看看