2015-03-29 1 views
0

donc Im essayant de dessiner un rectangle dans mon projet java et pour une raison quelconque j'obtiens une erreur et l'application s'arrête. L'erreur est 03-28 09: 05: 50.332: E/AndroidRuntime (4611): FATAL EXCEPTION: principal 03-28 09: 05: 50.332: E/AndroidRuntime (4611): Processus: com.Tripp.thebasics, PID: 4611 03-28 09: 05: 50.332: E/AndroidRuntime (4611): java.lang.NullPointerException: Tentative d'invocation de la méthode virtuelle 'void android.graphics.Paint.setColor (int)' sur une référence d'objet nulen créant un rectangle avec des mots

package com.Tripp.thebasics; 

import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.graphics.Rect; 
import android.util.AttributeSet; 
import android.view.View; 

public class DrawingView extends View { 
    Paint paint; 

    public DrawingView(Context context) { 
     super(context); 
     // TODO Auto-generated constructor stub 
    } 

    public DrawingView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     // TODO Auto-generated constructor stub 
    } 

    public DrawingView(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    protected void onDraw(Canvas canvas){ 
     super.onDraw(canvas); 

     Rect ourRect = new Rect(); 

     ourRect.set(0,0,canvas.getWidth(),canvas.getHeight()/2); 
     paint.setColor(Color.RED); 

     canvas.drawRect(ourRect, paint); 
    } 

} 

et est le bouton ici qui va à cette classe ci-dessous

public class JokeOfTheDay extends Activity { 

    DrawingView v; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     v = new DrawingView(this); 
     setContentView(v); 

    } 



} 
+0

http: // développeur. android.com/training/custom-views/custom-draw ing.html – ejohansson

Répondre

2

Initialiser la variable de peinture dans votre constructeur avant d'essayer de l'utiliser. paint = new Paint();

+0

savez-vous comment raser les coins du rectangle? pour le rendre plus lisse et meilleur? –

+0

Cochez cette case http://stackoverflow.com/a/21934676/4714139 –