【问题标题】:How to put images in drawable folder dynamically如何动态地将图像放入可绘制文件夹中
【发布时间】:2017-08-16 19:14:39
【问题描述】:

我将从服务器获得 5 个不同的图像,它们分别位于 xxxhdpixxhdpixhdpihdpimdpi。 URL 将是这样的。

  • http://www.abctest.com/image-xxxhdpi.jpg

  • http://www.abctest.com/image-hdpi.jpg

有什么办法可以将这些图像放在可绘制文件夹中。这样每个设备都会根据其密度来拾取图像。我用谷歌搜索但找不到任何方法来实现这一点。

或者,如果采用不同的方法,从服务器获取 1 张大图像,那么在较小的设备上会产生滞后。

【问题讨论】:

    标签: android performance android-layout android-fragments android-drawable


    【解决方案1】:

    有什么办法可以将这些图像放在可绘制文件夹中。

    不是在运行时。资源和资产在运行时是只读的。

    【讨论】:

    • 谢谢,那我该怎么办?我将从服务器获取15background 图像,如果我不将它们放入drawable 中,那么我需要为屏幕密度像素创建检查,并根据任何检查我将加载不同的图像,或者是还有其他更好的方法吗?
    • @Kirmani88:“然后我需要为屏幕密度像素创建检查,并根据任何检查我将加载不同的图像”——正确。 Chirag shows code for identifying your density.
    【解决方案2】:

    您可以通过以下方式检查设备的密度:

    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);    
    int screenDensity = metrics.densityDpi;   
    

    并根据密度选择图像。
    已编辑
    或者你也可以这样做:

    float density = getResources().getDisplayMetrics().density;
    // return 0.75 if it's LDPI  
    // return 1.0 if it's MDPI
    // return 1.5 if it's HDPI
    // return 2.0 if it's XHDPI
    // return 3.0 if it's XXHDPI
    // return 4.0 if it's XXXHDPI
    

    【讨论】:

      猜你喜欢
      • 2012-02-27
      • 1970-01-01
      • 2012-04-29
      • 2012-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-31
      相关资源
      最近更新 更多