2014-10-11 1 views
0

Я хочу загрузить изображение в формате jpg на основе txt-файла, который я читаю последовательно. Я поместил jpg-файлы в активы. Я нашел следующий код для использования:Динамически загружать файлы jpg

((ImageView)view).setImageBitmap(BitmapFactory.decodeFile("/data/data/com.myapp/files/someimage.jpg")); 

Я попытался вставить:

(GetApplicationContext().getResources().getAssets()+"file.jpg") 

Зная, что я использую Android Studio, что рекомендация:

  1. Как найти мой путь «активов»

  2. Является ли это атрибутом, который я должен использовать

  3. Любые рекомендации по другому методу

Система каталогов не совсем просто на андроид!

ответ

0

Если вы хотите загрузить изображения в каталоге ресурсов, вы можете сделать так,

InputStream is = context.getAssets().open(imageFileName);
Bitmap bitmap = BitmapFactory.decodeStream(is);

ИЛИ

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

int drawableId = context.getResources().getIdentifier("fileNameWithoutExtension", "drawable", context.getPackageName();
Drawable drawable = context.getResource().getDrawable(drawableId);

+0

Спасибо за помощь! но оба метода не работали. после отладчика все выглядит отлично. За исключением того, что thr res ищет drawable-hdpi-v4. поэтому я создал этот каталог вручную, но он ничего не меняет. Что я должен искать? ony modif, который я изменил на ваш код, инициализирует context = getApplicationContext(). – narb

+0

Не могли бы вы показать мне, как вы написали код? – coderhyme

+0

Ват, первый тоже не работает? странно .. – coderhyme

0

Спасибо за вашу помощь! Очень признателен!

код:

public class MyActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_my); 

    Button btn = (Button) findViewById(R.id.btn); 
    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      drawJPG(); 
     } 
    }); 

} 

private void drawJPG() { 
    Context context = null; 
    InputStream is = null; 
    context = getApplicationContext(); 
    try { 
     is = context.getAssets().open("myjpg.jpg"); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    Bitmap bitmap = BitmapFactory.decodeStream(is); 
} 

Doing отладки она выглядит хорошо на растровом изображении()

this = {[email protected]} 
nativeBitmap = 2052352744 
buffer = {byte[201300]@830031238688} 
width = 275 
height = 183 
density = -1 
isMutable = false 
isPremultiplied = true 
ninePatchChunk = null 
layoutBounds = null 

вариант 2:

public class MyActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_my); 

    Button btn = (Button) findViewById(R.id.btn); 
    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      drawJPG(); 
     } 
    }); 

} 

private void drawJPG() { 
    Context context = null; 
    context = getApplicationContext(); 
    int drawableID = context.getResources().getIdentifier("myjpg", "drawable", context.getPackageName()); 
    Drawable drawable = context.getResources().getDrawable(drawableID); 

} 

это выглядит еще хорошо через отладки:

this = {[email protected]} 
value = {[email protected]}"TypedValue{t=0x3/d=0x3 "res/drawable-hdpi-v4/myjpg.jpg" a=4 r=0x7f020000}" 
id = 2130837504 
isColorDrawable = false 
key = 17179869187 
cs = null 
dr = null 
file = {[email protected]}"res/drawable-hdpi-v4/myjpg.jpg" 

 Смежные вопросы

  • Нет связанных вопросов^_^