-1

実行時に drawable-* フォルダーに画像を追加するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

6

それはいけません。コンパイルで R.java ファイルを生成するには、コンパイル時に res フォルダーを埋める必要があります。

于 2012-04-27T14:08:20.387 に答える
1

@blackbeltが言ったようにできません。ただし、実行時に生成することもできます:

のような接尾辞で示されるように、解像度が異なるいくつかの画像がある場合:

  • close-ldpi.png
  • close-mdpi.png
  • close-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);
于 2012-04-27T14:15:44.470 に答える