android项目,往drawable文件夹里面导入图片,main.xml里能找到图片,但是在java文件中R.drawable。找不到
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android项目,往drawable文件夹里面导入图片,main.xml里能找到图片,但是在java文件中R.drawable。找不到相关的知识,希望对你有一定的参考价值。
参考技术A 并不是所有在drawable里面的图片都会在R.drawable中现实的,只有你在程序中定义了并应用的图片才会在R.drawable找得到 参考技术B clean下项目,刷新Android - 将图像添加到项目
【中文标题】Android - 将图像添加到项目【英文标题】:Android - Adding Images To Project 【发布时间】:2013-02-10 02:55:56 【问题描述】:我是Android
的新手,我正在使用Eclipse ADT
创建一个简单的应用程序。此应用程序有一个按钮,可根据用户点击更改其背景图像。
我注意到我的项目中有 4 个图片文件夹:drawable-hdpi, drawable-ldpi, drawable-mdpi, and drawable-xhdpi
。
而且我还注意到当前在其中的图像(启动器图标)大小不同。
这是否意味着我必须使用一些图像编辑软件为我的每张图像的每种分辨率创建一张图像?或者(希望)有没有办法导入图像并自动为我完成?
谢谢!
【问题讨论】:
【参考方案1】:图像和其他可视文件存储在一个或多个可绘制目录中。如果仅在一个目录中,Android 将根据需要缩放图像。如果使用多个目录,Android 将选择适当大小的图像。
drawable-ldpi - 低密度图像 drawable-mdpi - 中等密度图像 drawable-hdpi - 高密度图像 drawable-xhdpi - 超高密度图像(即类似视网膜的显示) drawable-xxhdpi - 超高密度图像(Nexus 10、Samsung Galaxy S4、HTC One 和 Sony Xperia Z 等设备) drawable-xxxhdpi - 三倍超高密度图像 (Nexus 6 and 9)(旁注:XML 文件也可以作为可绘制对象编写和存储。这些类型的文件可以根据视图的状态或其他视觉设置(如渐变、边框等)控制何时使用多个图像。 )
那么,应该做什么呢?
为了获得最佳效果(来自Android developer docs):
要生成这些图像,您应该从矢量格式的原始资源开始,并使用以下尺寸比例为每个密度生成图像:
xxxhdpi: 4.0 xxhdpi: 3.0 xhdpi: 2.0 hdpi:1.5 tvdpi:1.33(仅限电视) mdpi:1.0(基线) ldpi:0.75这意味着,如果您为 xhdpi 设备生成 200x200 的图像,您应该为 hdpi 生成 150x150、tvdpi 为 133x133、mdpi 为 100x100,最后为 ldpi 设备生成 75x75 的相同资源。
如果您只想使用一张图片并让 Android 为您扩展:
根据Dashboard on the Android Developer site,现在超过 75% 的 Android 设备具有 hdpi 或更高的分辨率。因此,例如,如果您在 hdpi 上创建一个图像,它在大约三分之一的设备上看起来很完美,在某些设备上可以放大,在大约 25% 的设备上可以缩小。一般来说,我认为缩小规模比扩大规模要好。
【讨论】:
谢谢!我最近研究了这个问题。 我有 20 张图片。它们每个都是 100x100 像素。我想这意味着我必须再创建 60 张图像,其他 3 种密度各一张。你能推荐一个程序来简化这个任务吗?我使用paint.net,但它不做批处理。 我不知道什么是最好的,但这里有一些选择。我使用了 ImageMagick 的“mogrify”命令行工具:imagemagick.org/script/mogrify.php。这是一个超级用户论坛帖子,也可能有帮助:superuser.com/questions/315885/fast-batch-image-resizer 好回答 Ben,你应该把 tvdpi 添加到你的列表中【参考方案2】:这是否意味着我必须使用一些图像编辑软件为我的每张图像的每种分辨率创建一张图像?或者(希望)有没有办法导入图像并自动为我完成?
如果您已经有图像的高分辨率源(或矢量图形格式),您可以使用Android Asset Studio 从您自己的源图像为每个密度(减去 xxhdpi)生成图标/图像)。您还可以从默认的 Android 剪贴画创建图标/图像,这些剪贴画可以为各种版本的 Android 设置主题。这将为您省去一些使用图像编辑工具调整大小和保存的麻烦。
【讨论】:
该工具将在其创建的图像中附加“.9”(即 image.9.png)。调用drawable时,只需使用“image”(跳过“.9”和扩展名)。花了一些时间试图弄清楚这一点。以上是关于android项目,往drawable文件夹里面导入图片,main.xml里能找到图片,但是在java文件中R.drawable。找不到的主要内容,如果未能解决你的问题,请参考以下文章
xml 1像素边框。放在android drawable文件夹里面
Android studio的深坑 导jar包重复的异常处理
android获取drawable里面的图片的id和名字的方法
android 开发 string.xml 里面的<drawable name="33f"></drawable> 这个是写路径的吗