2015-02-17 2 views
0

В моем коде у меня нет никаких ошибок, никаких предупреждений вообще, но когда я загружаю макет, пытаясь отобразить фотографию миниатюр, расположенную в папке «Активы», я не вижу свое изображение («25.png»), отображаемый в моем макете.Не удается загрузить изображение из папки «Активы» в Android

Мой Java файл:

import android.app.Activity; 
import android.os.Bundle; 
import java.io.IOException; 
import java.io.InputStream; 
import android.graphics.drawable.Drawable; 
import android.widget.ImageView; 

public class Museum_Exhibit_Info extends Activity { 

    ImageView mImage; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.exhibit_info); 
     mImage = (ImageView)findViewById(R.id.mImage); 
     loadDataFromAsset(); 

    } 

     public void loadDataFromAsset() { 

     // load image 
     try { 
      // get input stream 
      InputStream ims = getAssets().open("25.png"); 
      // load image as Drawable 
      Drawable d = Drawable.createFromStream(ims, null); 
      // set image to ImageView 
      mImage.setImageDrawable(d); 
     } 
     catch(IOException ex) { 
      return; 
     } 

    } 

} 

И мой файл XML является:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

    <ImageView 
     android:id="@+id/mImage" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:contentDescription="@string/assets_image_number_25" 
     /> 

</LinearLayout> 

Я действительно не понимаю, в чем проблема.

My Logcat есть (от запуска моего app..during выполнения):

02-26 16:54:42.827: I/QCAR(2882): Configure Video Background : Video (640,480), Screen (1080,1920), mSize (1440,1920) 
02-26 16:54:42.927: D/dalvikvm(2882): GC_EXPLICIT freed 536K, 17% free 22671K/27228K, paused 4ms+8ms, total 39ms 
02-26 16:54:43.488: I/Choreographer(2882): Skipped 60 frames! The application may be doing too much work on its main thread. 
02-26 16:54:43.498: E/BufferQueue(2882): [unnamed-2882-1] dequeueBuffer: min undequeued buffer count (2) exceeded (dequeued=11 undequeudCount=0) 
02-26 16:54:43.498: E/BufferQueue(2882): [unnamed-2882-1] dequeueBuffer: min undequeued buffer count (2) exceeded (dequeued=10 undequeudCount=1) 
02-26 16:54:43.728: I/Adreno-EGL(2882): <qeglDrvAPI_eglInitialize:381>: EGL 1.4 QUALCOMM build: (CL3869936) 
02-26 16:54:43.728: I/Adreno-EGL(2882): OpenGL ES Shader Compiler Version: 17.01.11.SPL 
02-26 16:54:43.728: I/Adreno-EGL(2882): Build Date: 01/17/14 Fri 
02-26 16:54:43.728: I/Adreno-EGL(2882): Local Branch: 
02-26 16:54:43.728: I/Adreno-EGL(2882): Remote Branch: 
02-26 16:54:43.728: I/Adreno-EGL(2882): Local Patches: 
02-26 16:54:43.728: I/Adreno-EGL(2882): Reconstruct Branch: 
02-26 16:54:43.728: I/QCAR(2882): Creating OpenGL ES 2.0 context 
02-26 16:54:43.838: D/QCAR(2882): GLRenderer::onSurfaceCreated 
02-26 16:54:43.838: I/QCAR(2882): Java_com_qualcomm_QCARSamples_ImageTargets_ImageTargetsRenderer_initRendering 
02-26 16:54:43.858: D/QCAR(2882): GLRenderer::onSurfaceChanged 
02-26 16:54:43.858: I/QCAR(2882): Java_com_qualcomm_QCARSamples_ImageTargets_ImageTargetsRenderer_updateRendering 
02-26 16:54:43.858: I/QCAR(2882): Configure Video Background : Video (640,480), Screen (1080,1920), mSize (1440,1920) 
02-26 16:54:43.858: D/QCAR(2882): ImageTargets::updateRenderView 
02-26 16:54:43.858: I/QCAR(2882): Java_com_qualcomm_QCARSamples_ImageTargets_ImageTargetsRenderer_updateRendering 
02-26 16:54:43.858: I/QCAR(2882): Configure Video Background : Video (640,480), Screen (1080,1920), mSize (1440,1920) 
02-26 16:54:43.858: I/QCAR(2882): Java_com_qualcomm_QCARSamples_ImageTargets_ImageTargets_setProjectionMatrix 
02-26 16:54:46.541: I/System.out(2882): Cursor size 1 
+4

Пожалуйста, запишите исключение, а не игнорируйте его. – CommonsWare

+2

Попробуйте помещать в блок 'catch' следующие строки: ' Log.e («TAG_IMAGE_ERROR», «Ошибка:» + ex.getMessage()); ex.printStackTrace(); '. И затем проверьте журнал для TAG_IMAGE_ERROR при запуске приложения ... Затем опубликуйте журнал здесь ... – miselking

+0

Возможный дубликат [Как отобразить изображение из папки ресурсов в android?] (Http://stackoverflow.com)/questions/8151102/how-to-display-the-image-from-assets-folder-in-android) – sonictt1

ответ

0

---> Проблема решена < ---

Мои активы фотография была расположена в подкаталоге активов, так Я изменил код

InputStream ims = getAssets().open("25.png"); 

в

String filename = "My assets subfolder name/"+ "25.png"; 
      InputStream ims = assetManager.open(filename); 
Смежные вопросы