Android的图片资源通常在drawable-hbip,drawable-mbip,drawable-lbip。
然后根据屏幕密度来取对应的图片。同时发现如果没有满足屏幕密度的图片时,就会取某一个图片资源,然后根据屏幕密度进行缩放。我想不让系统缩放我的图片。就用我放入的图片,有方法吗?
比如我一张800*480的图片。放到mbip中。
分辨率同为800*480,如果是160dip的屏幕,就刚好全屏,如果是140dip的屏幕,就会缩小。
我希望系统不改变图片的尺寸,有方法吗?
5 个解决方案
#1
三种方法:
1. 放到assert文件夹中,在代码中调用mContext.getResources().getAssets().open(filename)使用;
2. 放到raw文件夹中,在代码中调用mContext.getResources().openRawResource(R.id.filename)使用;
3. 直接新建个drawable文件夹,注意后面没有加-mdpi、hdpi之类的,然后把图片放里面。
自己试试哪种合适,个人建议,无用勿怪
1. 放到assert文件夹中,在代码中调用mContext.getResources().getAssets().open(filename)使用;
2. 放到raw文件夹中,在代码中调用mContext.getResources().openRawResource(R.id.filename)使用;
3. 直接新建个drawable文件夹,注意后面没有加-mdpi、hdpi之类的,然后把图片放里面。
自己试试哪种合适,个人建议,无用勿怪
#2
多谢。我刚找到另外一种方法,就是放入drawable-nodpi中。这时,图片尺寸不会被改变。
#3
但是如果不知道如何建立不同分辨率的文件夹。
如drawable-nodpi-800×480,就会报错,暂时没有找到解决方法。
如drawable-nodpi-800×480,就会报错,暂时没有找到解决方法。
#4
看了下文档,drawable-nodpi是不需要后面加上例如-800×480等分辨率的吧? 系统会自动忽略掉里面的文件,不进行scale,“ it does not scale it based on the current device density.” 原话是这样说的。
#5
好的。多谢了。
#1
三种方法:
1. 放到assert文件夹中,在代码中调用mContext.getResources().getAssets().open(filename)使用;
2. 放到raw文件夹中,在代码中调用mContext.getResources().openRawResource(R.id.filename)使用;
3. 直接新建个drawable文件夹,注意后面没有加-mdpi、hdpi之类的,然后把图片放里面。
自己试试哪种合适,个人建议,无用勿怪
1. 放到assert文件夹中,在代码中调用mContext.getResources().getAssets().open(filename)使用;
2. 放到raw文件夹中,在代码中调用mContext.getResources().openRawResource(R.id.filename)使用;
3. 直接新建个drawable文件夹,注意后面没有加-mdpi、hdpi之类的,然后把图片放里面。
自己试试哪种合适,个人建议,无用勿怪
#2
多谢。我刚找到另外一种方法,就是放入drawable-nodpi中。这时,图片尺寸不会被改变。
#3
但是如果不知道如何建立不同分辨率的文件夹。
如drawable-nodpi-800×480,就会报错,暂时没有找到解决方法。
如drawable-nodpi-800×480,就会报错,暂时没有找到解决方法。
#4
看了下文档,drawable-nodpi是不需要后面加上例如-800×480等分辨率的吧? 系统会自动忽略掉里面的文件,不进行scale,“ it does not scale it based on the current device density.” 原话是这样说的。
#5
好的。多谢了。