是否可以从assets文件夹加载drawable?

Jam*_*mie 46 android assets drawable

你可以从assets(不是drawable文件夹)文件夹中的子目录加载drawable 吗?

Rub*_*con 105

希望这个帮助:

Drawable d = Drawable.createFromStream(getAssets().open("Cloths/btn_no.png"), null);
Run Code Online (Sandbox Code Playgroud)


Dav*_*vid 7

我建议使用这个

 Drawable.createFromResourceStream(resources,new TypedValue(), resources.getAssets().open(filename), null)
Run Code Online (Sandbox Code Playgroud)

由于资源,它返回适当缩放的drawable ...


Bar*_*urg 7

这是一个使用静态方法从类中获取drawable的类.它还关闭了输入流.

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;
    }
}
Run Code Online (Sandbox Code Playgroud)