android获取项目下的一张图片的绝对路径问题以及解决方法
思路如下:
1、把图片放到项目下的assets文件夹下。
2、通过一个方法将该文件夹下面的文件转换成为一个输入流。
3、将输入流转换成为一个字节数组。
4、创建一个输出流,将byte[]写入到sd卡中(此时自己可以对原来的图片重新命名)。
5、通过Environment类中的一些方法就可以获取String类型的绝对路径了。
代码实现如下:
- private byte[] InputStreamToByte(InputStream is) throws IOException {
- ByteArrayOutputStream bytestream = new ByteArrayOutputStream();
- int ch;
- while ((ch = is.read()) != -1) {
- bytestream.write(ch);
- }
- byte imgdata[] = bytestream.toByteArray();
- bytestream.close();
- return imgdata;
- }
- /**
- *
- * @param bs
- * 把字节数组写到SDCard中,然后再读取该图片
- */
- public void writetoSDCard(byte []bs){
- try {
- FileOutputStream out=new FileOutputStream(new File("/sdcard/test.png")); //重新命名的图片为test.png.想要获取的图片的路径就是该图片的路径
- try {
- out.write(bs);
- out.flush();
- out.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- public void sendImgFriend(){
- InputStream abpath=getClass().getResourceAsStream("/assets/picture/logo.png");
- try {
- writetoSDCard(InputStreamToByte(abpath));
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- String path_img=Environment.getExternalStorageDirectory().getAbsolutePath()+/test.png;
有着梦想,但改变不了世界,
只有坚持,让生活不再单调,
我不是我,
我还是我。