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

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

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

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

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

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

Который возвращает корректно масштабируемый ресурс благодаря ресурсам …

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

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

Проверьте возвращаемую переменную 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; } 

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

 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; } } 

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

 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; } 

На этой версии вы не можете, если вы создадите подпапку в своей выпадающей папке, вы не сможете ее использовать в своем xml-файле, она не будет распознана при использовании android: src.

Взгляните на эту тему: может ли каталоги с Android-графикой содержать подкаталоги?