博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【android】 资源路径
阅读量:5861 次
发布时间:2019-06-19

本文共 2076 字,大约阅读时间需要 6 分钟。

思路:

如果图片在Drawable下面,可以把图片的ID给存到数据库,

想保存路径,可以把图片放在assets文件夹下面。

 

绝对路径:

第一种方法:

String path = file:///android_asset/文件名;

第二种方法:

InputStream abpath = getClass().getResourceAsStream("/assets/文件名");    //若要想要转换成String类型    String path = new String(InputStreamToByte(abpath ));    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;    }

 

一、assets目录下的资源文件不会在R.java自动生成ID,所以读取assets目录下的文件必须指定文件的路径。可以通过AssetManager类来访问这些文件。比如要读取assets目录下的background.png:

Bitmap bgImg = getImageFromAssetFile( "background.png" );          /**       * 从assets中读取图片       */      private Bitmap getImageFromAssetsFile(String fileName)        {            Bitmap image = null;            AssetManager am = getResources().getAssets();            try            {                InputStream is = am.open(fileName);                image = BitmapFactory.decodeStream(is);                is.close();            }            catch (IOException e)            {                e.printStackTrace();            }             return image;        }

 

1. 图片放在sdcard中,

Bitmap imageBitmap = BitmapFactory.decodeFile(path) (path 是图片的路径,跟目录是/sdcard)

2. 图片在项目的res文件夹下面

//得到application对象ApplicationInfo appInfo = getApplicationInfo();//得到该图片的id(name 是该图片的名字,"drawable" 是该图片存放的目录,appInfo.packageName是应用程序的包)int resID = getResources().getIdentifier(name, "drawable", appInfo.packageName);//代码如下public Bitmap getRes(String name) {ApplicationInfo appInfo = getApplicationInfo();int resID = getResources().getIdentifier(name, "drawable", appInfo.packageName);return BitmapFactory.decodeResource(getResources(), resID);}

3. 图片放在src目录下

String path = "com/xiangmu/test.png"; //图片存放的路径InputStream is = getClassLoader().getResourceAsStream(path); //得到图片流

4.android中有个Assets目录,这里可以存放只读文件

 

//资源获取的方式为InputStream is = getResources().getAssets().open(name);

转载地址:http://mmejx.baihongyu.com/

你可能感兴趣的文章
基本信息项目目标文档
查看>>
移动开发Html 5前端性能优化指南
查看>>
silverlight style和template 使用之tip
查看>>
Eclipse配置python环境
查看>>
第十二周总结
查看>>
Import declarations are not supported by current JavaScript version--JavaScript版本不支持导入声明...
查看>>
js兼容性大全
查看>>
晶振不起振的原因及其解决方法
查看>>
学习目标
查看>>
《利用python进行数据分析》学习笔记--数据聚合与分组(groupby)
查看>>
C++中的函数指针模板
查看>>
2015年个人总结
查看>>
C#编程(六)------------枚举
查看>>
《系统架构师》——操作系统和硬件基础
查看>>
如何看待一本图书
查看>>
angularjs1-7,供应商
查看>>
oracle参数列表
查看>>
Wordpress3.2去除url中的category(不用插件实现)
查看>>
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine-Excel2003
查看>>
macOS Sierra 代码显示未来 Mac 将搭载 ARM 芯片
查看>>