Установить ресурс BitmapDrawable в конструкторе - PullRequest
1 голос
/ 11 марта 2011

Как я могу установить ресурс в конструкторе BitmapDrawable?В приведенном ниже примере я хочу установить ресурс R.drawable.default_fb_pic, который является идентификатором, а не ресурсом.Как я могу получить ресурс?С помощью ImageView мы можем установить ресурс с его идентификатором:

imageview.setImageResource(R.drawable.whatever);  

Мне не очень понятно, почему иногда ресурс может быть установлен напрямую с помощью его идентификатора, а иногда нет.

Кто-нибудь может помочь?

static class DownloadedDrawable extends BitmapDrawable {            

    public DownloadedDrawable(BitmapDownloaderTask bitmapDownloaderTask) {
        super(R.drawable.default_fb_pic); //"The constructor BitmapDrawable(int)
        //is undefined",
        //which I understand because it takes a resource.
        //But how do I get the resource and why is there no constructor
        //directly with the id?
    }

    ...
}

Ответы [ 2 ]

5 голосов
/ 11 марта 2011

Есть

Context.getResources()

http://developer.android.com/reference/android/content/Context.html#getResources()

И вы можете связать это с

getDrawable()

http://developer.android.com/reference/android/content/res/Resources.html#getDrawable(int)

mContext.getResources().getDrawable(R.drawable.default_fb_pic);

Вам просто нужна ссылка на ваш контекст.

3 голосов
/ 27 октября 2015

getResources (). GetDrawble (int id) уже объявлен устаревшим в API 22. Настоятельно рекомендуется использовать contextCompat.getDrawble (Context ctx, int id).

...