2010-02-27 5 views
1

J'essaie d'étendre un objet RelativeLayout et d'inclure un objet SurfaceView incorporé qui utilise un fichier png dans mon dossier/res/drawable comme arrière-plan, mais je reçois toujours une erreur dans l'éditeur de disposition XML. Voir le code suivant:NotFoundException dans l'éditeur de disposition pour Android?

public class StopMotionRelativeLayout extends RelativeLayout 
{ 
    private Context myContext; 
    private SurfaceView surfaceView1; 

    private BitmapFactory.Options myBitmapOptions; 
    private final android.view.ViewGroup.LayoutParams params = 
     new LayoutParams(LayoutParams.FILL_PARENT, android.view.ViewGroup.LayoutParams.FILL_PARENT); 

    public StopMotionRelativeLayout(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     myContext = context; 
     this.setBackgroundColor(Color.GREEN); 

     //init images 
     surfaceView1 = new SurfaceView(myContext,attrs); 
     surfaceView1.setVisibility(View.INVISIBLE); 
     this.addView(surfaceView1, params); 

    } 

     @Override 
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) 
    { 
     super.onMeasure(widthMeasureSpec, heightMeasureSpec); 

     myBitmapOptions = new Options(); 
     myBitmapOptions.outWidth = widthMeasureSpec; 
     myBitmapOptions.outHeight = heightMeasureSpec; 

     surfaceView1.setBackgroundDrawable(new BitmapDrawable(BitmapFactory.decodeResource(this.myContext.getResources(), 
       R.drawable.golf1, myBitmapOptions))); 
    } 
} 

Je reçois l'erreur suivante:

NotFoundException: Could not find drawable resource matching value 0x7F020002 (resolved name: golf1) in current configuration.

Je l'ai vu ce type d'erreur peut fois maintenant et il arrive toujours lorsque je tente de charger quelque chose d'un fichier de ressources via code et non XML. Curieusement, cette erreur ne m'empêche pas de compiler l'application, et l'application s'exécute sans erreur dans l'émulateur. Je voudrais récupérer l'utilisation de mon éditeur de mise en page si ...

S'il vous plaît aider.

MISE À JOUR: Voici la mise en page XML

<?xml version="1.0" encoding="utf-8"?> 

<com.games.test.StopMotionRelativeLayout android:id="@+id/RelativeLayout01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
</com.games.test.StopMotionRelativeLayout> 
+0

Par souci d'exhaustivité, cela vous dérangerait-il de publier la mise en page XML? –

+0

Avez-vous votre fichier golf1.png dans le dossier/res/drawable- [h | m | l] dpi qui correspond à la configuration de votre emulatror/device? Lors de l'utilisation d'un décodeur, il peut être crucial que vous ayez la ressource dans le bon dossier, puisque vous allez y faire face, ne laissez pas l'échelle par défaut ou le recadrage à avoir lieu. – rekaszeru

Répondre

0

Je me demande si cela fonctionnerait si vous avez spécifié une valeur pour Android: fond dans le fichier XML, puis le remplacer dans votre code. Pour contourner le problème, vous pouvez également essayer d'appeler la fonction isInEditMode() et ne pas définir l'arrière-plan en mode édition. Pour résoudre ce problème, vous pouvez également utiliser la fonction isInEditMode().

Questions connexes