在运行时将图像添加到drawable- *文件夹

时间:2012-04-27 14:06:54

标签: android

如何在运行时将图像添加到drawable- *文件夹?

谢谢!

2 个答案:

答案 0 :(得分:6)

你不能。必须在编译时填充res文件夹,以便让编译生成R.java文件。

答案 1 :(得分:1)

你不能像@blackbelt那样说。但是你仍然可以在运行时生成它:

如果您有一些不同分辨率的图像,如后缀所示:

  • 密ldpi.png
  • 密mdpi.png
  • 密hdpi.png

您可以执行类似

的操作
    DisplayMetrics metrics = new DisplayMetrics();
    this.activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
    String fileName = "close";
    String fileSuffix = "";
    String fileExtension = ".png";
    int dpi = Math.round( metrics.density * 160 );
    if ( dpi<= 120/*DisplayMetrics.DENSITY_LOW*/) {
        fileSuffix = "-ldpi";
    } else if ( dpi<= 160/*DisplayMetrics.DENSITY_MEDIUM*/) {
        fileSuffix = "-mdpi";
    } else if ( dpi<= 240/*DisplayMetrics.DENSITY_HIGH*/) {
        fileSuffix = "-hdpi";
    } else if ( dpi<= 320/*DisplayMetrics.DENSITY_XHIGH*/) {
        fileSuffix = "-hdpi";
    }//else

    Drawable crossDrawable = new BitmapDrawable( getClass().getResourceAsStream( fileName + fileSuffix + fileExtension ) ); 
    //getContext().getResources().getDrawable( android.R.drawable.btn_dialog );
    crossImage.setImageDrawable(crossDrawable);