Подтвердить что ты не робот

Можно ли загрузить выгружаемую из папки с ресурсами?

Можно ли загрузить выгружаемый из подкаталога в папке assets (а не в папке с возможностью переноса)?

4b9b3361

Ответ 1

Надеюсь, что эта помощь:

Drawable d = Drawable.createFromStream(getAssets().open("Cloths/btn_no.png"), null);

Ответ 2

Я рекомендую использовать этот

 Drawable.createFromResourceStream(resources,new TypedValue(), resources.getAssets().open(filename), null)

который возвращает корректно масштабируемый доступ к ресурсам...

Ответ 3

Да, вы можете создать объект Drawable из InputStream с помощью метода createFromStream().

Ответ 4

Здесь класс со статическим методом для получения извлекаемых из активов. Он также закрывает входной поток.

import android.content.Context;
import android.graphics.drawable.Drawable;

import java.io.IOException;
import java.io.InputStream;

/**
 * Created by bartburg on 4-11-2015.
 */
public class AssetsReader {

    public static Drawable getDrawableFromAssets(Context context, String url){
        Drawable drawable = null;
        InputStream inputStream = null;
        try {
            inputStream = context.getAssets().open(url);
            drawable = Drawable.createFromStream(inputStream, null);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return drawable;
    }
}

Ответ 5

Вот функция, которая делает это для вас.

Проверьте возвращаемую переменную Drawable для null, поскольку null может возвратиться, если путь недействителен или существует исключение IOException.

public static Drawable getDrawableFromAssetFolder(String fullPath, Activity ctx) {
    Drawable d =null;
    try {
        d = Drawable.createFromStream(ctx.getAssets().open(fullPath), null);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return d;
}

Ответ 6

Это помогло получить правильную плотность

private Drawable drawableFromAssetFilename(String filename) {
    AssetManager assetManager = mApplicationContext.getAssets();
    InputStream inputStream = null;
    try {
        inputStream = assetManager.open(filename);
    } catch (IOException e) {
        e.printStackTrace();
    }
    Bitmap bitmap = BitmapFactory.decodeStream(inputStream);

    BitmapDrawable drawable = new BitmapDrawable(mApplicationContext.getResources(), bitmap);
    return drawable;
}