代码之家  ›  专栏  ›  技术社区  ›  Codebeat

Android:将图标等可缩放绘图限制为一个文件

  •  0
  • Codebeat  · 技术社区  · 11 年前

    之前我用Adobe Flash Builder制作了一些应用程序。这很好,但在某些情况下不是最佳选择,因此我开始使用ADT开发Android应用程序。

    就像在Flash Builder中一样,您可以为不同的屏幕分辨率设置多个图标。我可以理解为什么,但发现在创建一个高分辨率图标时并不是真的有必要,这很好(缩小比放大更好)。这也避免了创建这些图标所需的额外工作,只需一个图标。

    长话短说,我只想创建一个图标,144x144像素,分辨率为96dpi,并告诉Android使用这个图标。

    此外,我希望将应用程序图标指向资产目录,而不是res/drawable目录。这样做的原因是图标可以被(web-)应用程序重用,另一个原因是,我制作了一个webApp工具来创建webApp的压缩版本,并将内容放在Android项目的资产目录中。

    由于webApp也可以在浏览器中运行,我已经创建了一些图标(如favicon、apple touch图标和apple touchstartup图像),并希望在Android项目中自动重用这些图标。

    这个想法还包括创建一个应用程序项目模板,这样很容易创建webApp的android应用程序。

    问题

    Andy知道如何更改应用程序图标的位置吗?使用路径不起作用(它会生成错误,无法编译)。

    android:icon="@drawable/ic_launcher"
    
    android:icon="assets/appicon.png"  #<- doesn't work
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Codebeat    11 年前

    实际上,我自己找到了解决方案,非常简单。ADT中唯一一个有点棘手的事情是验证新声明,因为一开始“它说”声明无效。解决方法是剪切(ctrl+X)声明,通过project|clean清理项目,然后再次粘贴(ctrl+V)将其放回原处。奇怪但真实;-)

    您可以声明如下字符串资源(在XML文件中):

    <resources>
        <string name="app_icon">assets/appicon.png</string>
    </resources>
    

    android:icon="@string/app_icon" <-这行得通

    然后,您可以使用一个高分辨率图标图像作为所有设备的图标!看起来很棒!另请参见下图(红色矩形之间;-):

    enter image description here

    推荐文章