получить растровую информацию из растрового изображения, сохраненного в папке для рисования - PullRequest
9 голосов
/ 30 августа 2011

Я хочу прочитать растровое изображение, которое есть в моей папке для рисования, и сохранить его как переменную растрового изображения, чтобы я мог установить его в качестве фона.Будет ли лучший способ сделать это с помощью «чтения файлов»?как

  Bitmap decodeFile (String pathName) method

Или есть способ просто установить его так:

  Bitmap bmp = R.drawable."bitmapFileName"; 

(я пробовал это, но возвращает int, просто интересно, был ли я на правильном пути)

Любая помощь будет великолепна :)

Ответы [ 4 ]

31 голосов
/ 30 августа 2011

R.drawable."bitmapFileName" - это на самом деле просто целое число, поскольку это индекс (статическое целое число) в классе R вашего проекта (подробнее здесь ). Вы можете загрузить свое растровое изображение из папки ресурсов следующим образом:

Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.yourBitmap);

Я нашел этот код в Сообществе разработчиков Android .

6 голосов
/ 30 августа 2011

Я обычно использую папку активов

InputStream is = parentActivity.getResources().getAssets().open(iconFile);
Bitmap bmp = BitmapFactory.decodeStream(is);
BitmapDrawable bitmapDrawable = new BitmapDrawable(is);

тогда просто yourView.setBackgroundDrawable(bitmapDrawable);

4 голосов
/ 30 августа 2011

Возможно загрузить рисованный или растровый файл по имени.Вот пример:

public Drawable getImageByName(String nameOfTheDrawable, Activity a){
    Drawable drawFromPath;
    int path = a.getResources().getIdentifier(nameOfTheDrawable, 
                                    "drawable", "com.mycompany.myapp"); 

    Options options = new BitmapFactory.Options();
    options.inScaled = false;
    Bitmap source = BitmapFactory.decodeResource(a.getResources(), path, options);

    drawFromPath = new BitmapDrawable(source);  

    return drawFromPath;
}

Конечно, вы можете вернуть Bitmap вместо рисованного.

Drawbale d = getImageByName ("mageFileName", this);

0 голосов
/ 06 апреля 2012
/*
 * You can get Bitmap from drawable resource id in the following way
 */
BitmapDrawable drawable = (BitmapDrawable)context.getResources()
        .getDrawable(drawableId);
bitmap = drawable.getBitmap();
...