App Crash bei setBackgroundDrawable (canvas)

F

Frostymanu

Neues Mitglied
1
Hey Leute,

so langsam bin ich am verzweifeln...ich möchte das mein gezeichnetes Canvaszeug z.B. auf ein View (oder auch was anderes) gebracht wird. Also habe ich eine Bitmap erstellt wo das Canvas drauf kommt und die Bitmap soll dann als Background von einem View gesetzt werden nur irgendwie crasht die App dann immer an dieser stelle.

Hier der Code:

Code:
protected void onDraw(Canvas canvas) {
			super.onDraw(canvas);
	    	
	    	Bitmap lockbitmap = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(), Bitmap.Config.ARGB_8888);
	    	canvas = new Canvas(lockbitmap);
	    	
	    	Paint circlepaint = new Paint();
	    	circlepaint.setColor(Color.argb(120, 255, 255, 255));
	    	circlepaint.setStyle(Paint.Style.FILL);
	    	circlepaint.setAntiAlias(true);
	    	
	    	Paint lockpaint = new Paint(); 
	    	lockpaint.setColor(Color.argb(200, 80, 80, 80)); 
	    	lockpaint.setStyle(Style.FILL);
	    	lockpaint.setTextSize(24); 
	    	lockpaint.setTextAlign(Align.CENTER);
	    	
	    	Bitmap bmp = BitmapFactory.decodeResource( getResources(), R.drawable.bg);
	        Bitmap img = Bitmap.createScaledBitmap( bmp, canvas.getWidth(), canvas.getHeight(), true );
	        bmp.recycle();
	    	
	    	canvas.drawBitmap(img, 0, 0, null);
	    	canvas.drawCircle(canvas.getWidth()/2, canvas.getHeight()/2, (canvas.getWidth()*25/100), circlepaint);
	    	canvas.drawText("Locked", canvas.getWidth()/2, (canvas.getHeight()/2) - ((lockpaint.descent() + lockpaint.ascent()) / 2), lockpaint); 
	    	
	    	
	    	lockview.setBackgroundDrawable(new BitmapDrawable(lockbitmap));
	    	
	    }

Hat jemand vielleicht eine Lösung oder braucht ihr evtl. noch mehr Infos?
Danke im vorraus :)

mfg
 
Bei Crash bitte immer logcat. Danke

Gesendet von meinem GT-S5660 mit der Android-Hilfe.de App
 
Bitteschön ;D

05-04 12:03:18.830: E/AndroidRuntime(517): FATAL EXCEPTION: main
05-04 12:03:18.830: E/AndroidRuntime(517): java.lang.NullPointerException
05-04 12:03:18.830: E/AndroidRuntime(517): at de.mq.circle.CircleHome$lockcanvas.onDraw(CircleHome.java:71)
05-04 12:03:18.830: E/AndroidRuntime(517): at android.view.View.draw(View.java:10978)
05-04 12:03:18.830: E/AndroidRuntime(517): at android.view.ViewGroup.drawChild(ViewGroup.java:2887)
05-04 12:03:18.830: E/AndroidRuntime(517): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
05-04 12:03:18.830: E/AndroidRuntime(517): at android.view.ViewGroup.drawChild(ViewGroup.java:2885)
05-04 12:03:18.830: E/AndroidRuntime(517): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
05-04 12:03:18.830: E/AndroidRuntime(517): at android.view.ViewGroup.drawChild(ViewGroup.java:2885)
05-04 12:03:18.830: E/AndroidRuntime(517): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
05-04 12:03:18.830: E/AndroidRuntime(517): at android.view.View.draw(View.java:10981)
05-04 12:03:18.830: E/AndroidRuntime(517): at android.widget.FrameLayout.draw(FrameLayout.java:450)
05-04 12:03:18.830: E/AndroidRuntime(517): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2126)
05-04 12:03:18.830: E/AndroidRuntime(517): at android.view.ViewRootImpl.draw(ViewRootImpl.java:2026)
05-04 12:03:18.830: E/AndroidRuntime(517): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1634)
05-04 12:03:18.830: E/AndroidRuntime(517): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
05-04 12:03:18.830: E/AndroidRuntime(517): at android.os.Handler.dispatchMessage(Handler.java:99)
05-04 12:03:18.830: E/AndroidRuntime(517): at android.os.Looper.loop(Looper.java:137)
05-04 12:03:18.830: E/AndroidRuntime(517): at android.app.ActivityThread.main(ActivityThread.java:4424)
05-04 12:03:18.830: E/AndroidRuntime(517): at java.lang.reflect.Method.invokeNative(Native Method)
05-04 12:03:18.830: E/AndroidRuntime(517): at java.lang.reflect.Method.invoke(Method.java:511)
05-04 12:03:18.830: E/AndroidRuntime(517): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-04 12:03:18.830: E/AndroidRuntime(517): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-04 12:03:18.830: E/AndroidRuntime(517): at dalvik.system.NativeStart.main(Native Method)
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: blackfire185
Welche Zeile ist den 71 bei dem Code den du gepostet hast?
Ich finde den logcat doch recht eindeutig.
NullPointer, jetzt musst du nur noch rausfinden was dort null ist und warum.

Aber da ich deine Zeilennummern nicht kenne.

Auf den ersten ganz flüchtigen Blick
könnte die zeile:

BitmapFactory.decodeResource( getResources(), R.drawable.bg);

evtl null zurück geben und somit bei deinem Versuch darauf zuzugreifen eine NullPointerException fliegen.
 

Ähnliche Themen

M
Antworten
3
Aufrufe
168
moin
M
Manny87
  • Manny87
Antworten
11
Aufrufe
166
swa00
swa00
R
  • Robby1950
2
Antworten
23
Aufrufe
1.022
Robby1950
R
Zurück
Oben Unten