Die letzte Version V1.01 von Beetle Snatch ist veröffentlicht, der Sourcecode kann kostenlos von der Homepage heruntergeladen werden schubidos.net
Beiträge von Schubidos
-
-
Hi,
da gäbe es mal den direkten Ansatz über den Java Connector, wobei es hier scheinbar Probleme mit unterschiedlichen Versionen gibt. Ein Tutorial dafür gibt's hier
Ich würde diesen Ansatz aber aus einigen Gründen nicht verfolgen (hängt natürlich von der Art der Anwendung ab):
- die SQL's stehen direkt in der Applikation => bei Änderungen / Optimierungen auf der DB ist eine neue App Version nötig
- direkte Verbindung zu MySQL => für spätere Änderung der Datenbank (z.B. auf Postgress) ist eine neue App Versoin nötig
- Datenbank muss direkt über Web zugreifbar sein => Security!!Ein anderer Ansatz ist über Webservices, welche die Datenbankzugriffe kapseln, am einfachsten über http(s) / php. Hier sind ein paar Tutorials dazu :
http://www.helloandroid.com/tu…connecting-mysql-database
http://blog.sptechnolab.com/20…cting-to-mysql-using-php/
http://www.anddev.org/networki…ysql-database-t50063.html
http://p-xr.com/android-tutori…json-to-android-listview/Das hat den Vorteil, dass die Datenbankzugriffe am Server bleiben und nur vordefinierte Abfragen/Eingaben über die Webservices möglich sind.
Optimierungen / Änderungen / Erweiterungen der Datenbank können von diesen Services gekapselt werden und müssen die App nicht unbedingt beeinflussen (außer es kommen neue Pflichtfelder dazu oder Felder werden komplett entfernt). Die App muss sich nicht um die innere Struktur der DB kümmern. -
Hm - ob das mit Tabhost funktionieren soll/kann, weiß ich leider nicht.
Eventuell kannst Du versuchen, die Ausrichtung mit setRequestedOrientation (z.B. in onResume) der Activity zur Laufzeit umzuschalten.Mal eine andere Frage, wär's nicht auch möglich, einfach die automatische Drehung von Android zu verwenden / zuzulassen? D.h. wenn der Benutzer den Bildschirm dreht, wird (wenns nicht unterbunden ist) ohnehin das Bild gedreht. Dann könnte der Benutzer selbst entscheiden, in welchem Format die Tabelle auf seinem Bildschirm (könnte ja auch ein größeresTablet sein) besser angezeigt wird. Ich wär als User sogar unglücklich, wenn meine Bildschirmgröße ausreichend für vertikale Darstellung wäre und ich mit einer Drehung zwangsbeglückt würde.
Oder paßt das aus anderen Gründen nicht für Deine App? -
Hi,
ich nehme an, Du meinst "quer" und nicht "schräg".
Du kannst im Android Manifest XML bei der entsprechenden Activity folgendes eintragen :
android:screenOrientation="landscape"
siehe auch hier -
Hi,
mit PCM Codierung hab ich nix am Hut, aber wenn das 16bit ist, warum versuchst Du dann 16 byte zu tauschen?
Wäre da nicht eher :byte[] songl = new byte[song.length];
for (int i=0; i < song.length -1; i=i+2) {
songl[ i ]=song[i+1];
songl[i+1]=song[ i ];
}angebracht?
-
Servus Android Gemeinde,
man sollte sich ja vorstellen, wenn man bei der Tür hereinkommt. Naja - hab ich erst nach ein paar Tagen gecheckt.
Ich bin ein alter Hase in der Softwareentwicklung (MS-DOS und frühe Windows Versionen), aber war ein paar - naja, viele - Jährchen mit anderen Banalitäten beschäftigt.
Seit einem Jahr mach ich als Hobby mit meinen Kids wieder ein paar kleine Progrämmchen, d.h. die Kinder zeichnen was und ich bastel etwas Code dazu.
Vor ein paar Monaten hab ich nach langer Gegenwehr mein erstes Smartphone geschenkt bekommen. Es hat mich dann gereizt, mich auch mit der Programierung dieser Dinger zu beschäftigen. So bin ich zum Noob in Android und Java geworden und finde es total spannend, was ich in den letzten Jahren so alles getan hat. Schon heftig, dass mein Telefon heute mehr Speicher und Rechenleistung hat als die PC's auf welchen ich früher gearbeitet habe.
So let's have fun with it. -
Hi,
nachdem zwei Tage keine Antwort gekommen ist, versuch ichs mal auf gut Glück mit zwei ungetesteten Ansätzen :
int pos = ((ArrayAdapter) mySpinner.getAdapter()).getPosition(suchString);
if (pos>=0) sp.setSelection(i);oder
public void setSpinnerPosToString (Spinner sp, String s) {
int i;
for (i=0;i<sp.getCount();i++{
if ((String)sp.getItemAtPosition(i).equals(s)) {
sp.setSelection(i);
return;
}
}
} -
Oh - die Views sind in unterschiedlichen Activities, dann geht's so nicht, weil findViewById null zurückgibt, wenn diese View nicht in der aktuellen Activity ist.
Dann hast Du Recht, dass die Bilder via Intent.putExtra übergeben werden. Hier reicht aber auch, die Ressource-ID (Integer Wert) zu übergeben und bei der Empfänger-Activity dann mittels dieser ID die passende Bitmap zu laden und der ImageView zuzuordnen.
also intent.putExtra ("aktuellesbild", R.id.aktuellesImage)
und in der aufgerufenen Activity in onCreate mit saveInstanceState.getInt("aktuellesbild", R.id.defaultbild) auszulesen umt mit dieser ID die Bitmap laden und der View zuzuweisen.
Theoretisch zumindest - praktisch probiert habe ich das auch noch nicht. -
Hi,
das sollte m.E. recht einfach gehen - oder ich hab die Frage falsch verstanden ...
Du brauchst Variablen, welche die ImageViews und der Bitmaps halten
ImageView imageViewPage1, ..., imageViewPageX; // hier sind natürlich auch sprechende Namen zu bevorzugen
Bitmap bitmap1, ..., bitmapX;in der onCreate Methode der Activity weist Du diesen die jeweiligen ImageViews und Bitmaps zu
imageViewPage1 = (Button) findViewById(R.id.nameDeinerErstenImageView);
... u.s.w. für alle Seiten
bitmap1 = BitmapFactory.decodeResource(getResources (), R.drawable.deinImageSeite1);
... u.s.w. für alle Bilderund in onClick für Button 1
imageViewPage1.setImageBitmap (bitmap1);
...
imageViewPageX.setImageBitmap (bitmap1);und onClick Button X
imageViewPage1.setImageBitmap (bitmapX);
...
imageViewPageX.setImageBitmap (bitmapX); -
Hi,
versuchs mal mit dem Paint.ANTI_ALIAS_FLAG
also new Paint(Paint.FILTER_BITMAP_FLAG|Paint.ANTI_ALIAS_FLAG)oder übersichtlicher :
Paint paint = new Paint ();
paint.setFilterBitmap(true);
paint.setAntiAlias(true);und dann bei draw immer dieses paint Objekt verwenden.
hth
-
Der Konstruktor von Intent verlangt als ersten Parameter einen Context, "this" ist aber in diesem Fall keine Activity (und kein Context) sondern ein Objekt der Klasse AdapterView.OnItemClickListener. Darum geht es so nicht.
new Intent (, CountActivity.class) sollte funktionieren ( muss ein Pointer auf das aktuelle Activity Objekt sein)
oder
new Intent (getApplicationContext (), CountActivity.class)Elegant wäre m.E. aus dem OnItemClickListener nicht direkt die neue Activity zu starten, sondern eine Methode der aktuellen Activity aufzurufen und aus dieser die neue Activity zu starten. Diese könnte dann auch aus unterschiedlichen Event Handlern verwendet werden und dort ist auch "this" ein Context.
-
Hallo,
ich bin neu hier und möchte gleich mal mein erstes Android Projekt vorstellen.
Beetle Snatch ist ein kleines Gelegenheitsspiel, bei welchem auf einer Wiese Käfer gefangen werden. Die Steuerung erfolgt über die Bewegung des Gerätes (Winkelsensoren).
Ich habe mich entschlossen, die Alpha Version öffentlich zugänglich zu machen, in der Hoffnung Feedback zum Spielprinzip und zum Verhalten auf unterschiedlichen Devices zu bekommen - als Android Neuling fehlt mir noch jegliches Gefühl dafür.Das Spiel kann im Android Market herunter geladen werden : https://market.android.com/details?id=games.consifun.android
Elemente im Spiel und deren Funktionen :
Käfer bringen Punkte und Energie
Bienen sorgen für Blumen-Nachwuchs
Für's Blumen zerstören gibt es Energieabzug
Schmetterlinge bringen Energie, Punkte oder eine Sichel
Mit der Sichel können 5 Sekunden lang Blumen entfernt werden - ohne Energieabzug.Beim Start des Spiels erscheint ein kurzer Countdown - hierbei werden die Bewegungssensoren kalibriert, also bitte während dessen ruhig halten.
Bekannte Einschränkungen der Alpha Release :
- Bewegungssensoren reagieren bei manchen Geräten sehr empfindlich - dadurch wird das Spiel schwieriger
- bei Start mit mehr als 45° Neigung des Gerätes keine korrekte Bewegung
- versehentliches Drücken der "Return" Taste wird nicht abgefangen
- Pausefunktion (Tipp auf Bildschirm) wird nicht angezeigt
- keine Neukalibrierung der Bewegungssensoren nach Pause
- Highscore wird nicht gespeichert[Blockierte Grafik: https://schubidos.net/assets/images/1/v05-01-e19a0a11.png]