【问题标题】:load images from assets through XML通过 XML 从资产中加载图像
【发布时间】:2023-04-02 16:25:01
【问题描述】:

我在我的应用程序中使用了 150 多个图像和 30 个图标!所以我发现将这些图像全部放在 Drawable 文件夹中有点混乱,并且由于在 drawable 中不可能有子文件夹,我正在尝试从 Assets 文件夹加载我的图像。 因此,以编程方式从资产加载图像是可以的。

MY QUESTION is how to access Assets through XML?!

我们使用drawable:

  <ImageView    
    android:id="@+id/img"
    android:layout_width="25dp"
    android:layout_height="25dp"
    android:src=" **@drawable/ic_rate** "
      />

那么使用资产的等价物是什么。

【问题讨论】:

    标签: android assets


    【解决方案1】:

    尽管您应该使用可绘制对象,但您可以将自己的 asset_drawable 属性定义为字符串,而不是覆盖 ImageView 以查找该属性并从资源加载位图。您的 xml 将如下所示

     <com.foo.bar.AssetImageView    
         android:id="@+id/img"
         android:layout_width="25dp"
         android:layout_height="25dp"
         app:asset_drawable="some/path/asset"
      />
    

    【讨论】:

    • 加载图片需要几秒钟是正常的吗?
    • @choco 取决于图像大小。使用drawables是否也需要那么多时间?如果不是,您在加载图像时可能做错了什么。查看 ImageView 的源代码,了解它是如何加载图像的。
    • 遗憾的是目前还没有这样的通用 API(将资产映射到可绘制资源)。
    【解决方案2】:

    你没有。 ImageView 需要一个可绘制对象。并非所有资产都是可绘制的。

    Drawables 让您可以使用不同屏幕密度的图像。就用那些。如果您正在努力保持井井有条,也许您可​​以尝试使用前缀(例如,带有 ic 的前缀图标)。另一种选择是专门为图标创建一个库项目,尽管这可能有点矫枉过正。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      • 2013-08-04
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      相关资源
      最近更新 更多