Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
08-11 09:45:12.350 11548-11548/de.philipp.seifenblasen E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{de.philipp.seifenblasen/de.philipp.seifenblasen.MainActivity}: java.lang.RuntimeException: native typeface cannot be made at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2249) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299) at android.app.ActivityThread.access$700(ActivityThread.java:154) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5306) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.RuntimeException: native typeface cannot be made at android.graphics.Typeface.<init>(Typeface.java:307) at android.graphics.Typeface.createFromAsset(Typeface.java:281) at de.philipp.tools.BaseGameActivity.addTypeface(BaseGameActivity.java:24) at de.philipp.seifenblasen.MainActivity.onCreate(MainActivity.java:42) at android.app.Activity.performCreate(Activity.java:5255) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2213) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299) at android.app.ActivityThread.access$700(ActivityThread.java:154) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5306) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) at dalvik.system.NativeStart.main(Native Method) |
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
package de.philipp.seifenblasen; import android.app.Activity; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.FrameLayout; import android.widget.TextView; import java.util.HashSet; import java.util.Random; import java.util.Set; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import de.philipp.tools.BaseGameActivity; import de.philipp.tools.SimpleAnimationListener; import static de.philipp.seifenblasen.R.anim.fade_in; public class MainActivity extends BaseGameActivity implements View.OnClickListener { public static final String TYPEFACE_TITLE = "FantasticFont"; private ViewGroup container; private static final int BUBBLE_MAX = 10; private static final float V_MAX = 1f; private static final float SIZE_MAX = 128f; private Random rnd = new Random(); private Drawable bubbleDrawable; private Set<Bubble> bubbles = new HashSet<Bubble>(); private ScheduledExecutorService executor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); addTypeface(TYPEFACE_TITLE); container = (ViewGroup)findViewById(R.id.container); bubbleDrawable = getResources().getDrawable(R.drawable.soapbubble); } private void showStartFragment() { container.removeAllViews(); View start = getLayoutInflater().inflate(R.layout.start, null); setTypeface((TextView) start.findViewById(R.id.title),TYPEFACE_TITLE); start.findViewById(R.id.start).setOnClickListener(this); container.addView(start); Animation a = AnimationUtils.loadAnimation(this, fade_in); start.startAnimation(a); } @Override public void onClick(View view) { if(view.getId() == R.id.start) { Animation a = AnimationUtils.loadAnimation(this,R.anim.pulse); a.setAnimationListener(new SimpleAnimationListener() { @Override public void onAnimationEnd(Animation animation) { startGame(); } }); view.startAnimation(a); } } private void startGame() { container.removeAllViews(); bubbles.clear(); for(int i=0; i<BUBBLE_MAX; i++) { bubbles.add(new Bubble((FrameLayout) container, scale(V_MAX), scale(SIZE_MAX), rnd, bubbleDrawable)); } executor = Executors.newSingleThreadScheduledExecutor(); executor.scheduleAtFixedRate(moveRunnable, 0, 50, TimeUnit.MILLISECONDS); } @Override protected void onPause() { super.onPause(); executor.shutdown(); bubbles.clear(); } @Override protected void onResume() { super.onResume(); showStartFragment(); } private Runnable moveRunnable = new Runnable() { @Override public void run() { for(final Bubble b : bubbles) { runOnUiThread(new Runnable() { @Override public void run() { b.move(); } }); } } }; } |
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
package de.philipp.tools; import android.app.Activity; import android.graphics.Typeface; import android.os.Bundle; import android.widget.TextView; import java.util.HashMap; import java.util.Map; public class BaseGameActivity extends Activity { private Map<String,Typeface> typefaces = new HashMap<String,Typeface>(); private float density; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); density = getResources().getDisplayMetrics().density; } protected void addTypeface(String name) { Typeface typeface = Typeface.createFromAsset(getAssets(),name+".tff"); typefaces.put(name, typeface); } protected void setTypeface(TextView v, String typefaceName) { Typeface t = typefaces.get(typefaceName); if(t!=null) { v.setTypeface(t); } } protected float scale(float v) { return density * v; } } |
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Werbeanzeige