Kupiłem w końcu nowy telefon. Galaxy S+ czyli I9001. Na razie mi wystarczy. Jednak mój telefon musi mieć GPS, bo bieganie bez Sport Trackera to nie jest to samo. Instalacja aplikacji 5 sekund, uruchamiam i czekam na GPS.......
Cóż, mamy problem, trzeba zrobić research. Znalazłem różne porady, od "wymień roma" do różnych ustawień Angry GPS. Nic nie działało. Maksymalnie 3 satelity i koniec. W końcu wpadłem na stronę http://androidum.blogspot.com/2011/04/best-gps-fix-for-samsung-gt-i9000.html. Na pierwszy rzut oka to nie zadziała, ale wiecie co? Naprawiłem GPSa!!! Samsung wstydź się. Naprawianie telefonu przez ugniatanie antenki? Co to ma być?
Android krok po kroku
wtorek, 22 maja 2012
piątek, 20 kwietnia 2012
Wyświetlanie okna popup.
Wczoraj zabrałem się za okno popup, które ma się pojawiać pomiędzy poziomami. Będzie zawierało gratulacje, bieżącą punktację, najwyższy wynik w grze, być może również z internetu. Nie powinno być to nic skomplikowanego. Zacząłem od definicji układu next_level.xml:
Trzeba pamiętać o nadaniu identyfikatora układu - android:id="@+id/popup_layout". Będzie on potrzebny przy tworzeniu okna:
Teraz bardzo ważna sprawa. Jeżeli nasz popup ma reagować na zdarzenia - kliknięcie przycisku na przykład, to musi mieć tło. Ja chciałem, żeby było prześwitujące:
Potem dodam ładne zaokrąglone narożniki. Tło ustawione, teraz można dodać zdarzenia do przycisków i ustawić wartości:
Teraz gdy wszystko gotowe, wyświetlamy okienko:
Co dziwne, w dokumentacji piszą, że metoda dismiss() działa tylko dla okienek uruchomionych za pomocą metody showAsDropdown(), a w pozostałych przypadkach nic nie robi. Jednak okienko się zamyka. Wrócę do tego problemu później. Właściwie to nawet nie jest problem :)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/popup_layout"
android:layout_width="match_parent" android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/header"
style="@style/textattributes"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="@string/nxt_lvl_header" />
<RelativeLayout
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
style="@style/textattributes"
android:id="@+id/scoreText"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="@string/scoreTxt" />
<TextView
style="@style/textattributes"
android:id="@+id/scoreVal"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="0"
android:layout_toRightOf="@id/scoreText"
android:layout_marginLeft="3dp"/>
</RelativeLayout>
<LinearLayout
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:gravity="bottom|center"
android:orientation="vertical" >
<Button
android:id="@+id/nxt_lvl_dismis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/dismiss" />
</LinearLayout>
</LinearLayout>
Trzeba pamiętać o nadaniu identyfikatora układu - android:id="@+id/popup_layout". Będzie on potrzebny przy tworzeniu okna:
View popup = infl.inflate(R.layout.next_level,
(ViewGroup)findViewById(R.id.popup_layout));
pw = new PopupWindow(popup, 300, 470, true);
Teraz bardzo ważna sprawa. Jeżeli nasz popup ma reagować na zdarzenia - kliknięcie przycisku na przykład, to musi mieć tło. Ja chciałem, żeby było prześwitujące:
Bitmap tlo = Bitmap.createBitmap(300, 470, Bitmap.Config.ARGB_8888);
Canvas canvTemp = new Canvas(tlo);
canvTemp.drawColor(Color.parseColor("#D8591385"));
BitmapDrawable drw = new BitmapDrawable(tlo);
pw.setBackgroundDrawable(drw);
Potem dodam ładne zaokrąglone narożniki. Tło ustawione, teraz można dodać zdarzenia do przycisków i ustawić wartości:
TextView txtScore = (TextView)popup.findViewById(R.id.scoreVal);
txtScore.setText(""+score);
dismissButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
pw.dismiss();
}
});
Teraz gdy wszystko gotowe, wyświetlamy okienko:
pw.showAtLocation(popup, Gravity.CENTER, 0, 0);
Co dziwne, w dokumentacji piszą, że metoda dismiss() działa tylko dla okienek uruchomionych za pomocą metody showAsDropdown(), a w pozostałych przypadkach nic nie robi. Jednak okienko się zamyka. Wrócę do tego problemu później. Właściwie to nawet nie jest problem :)
Reaktywacja
Blog ten powstał dawno temu. A właściwie nie powstał, ale został założony i jak miliony innych porzucony. Ale coś się zmieniło.
Od kilku tygodni pracuję nad grą na Androida. Nie jest to nic szczególnie zaawansowanego. Ot, skrzyżowanie River Raid z Galaxy Invaders. Celem jest opanowanie programowania na Androida, coś, o czym myślałem od dłuższego czasu. No przecież ileż można pisać zapytania i formatki.
Na chwilę obecną mam zrobione:
To tyle na początek. Życzcie mi powodzenia.
Od kilku tygodni pracuję nad grą na Androida. Nie jest to nic szczególnie zaawansowanego. Ot, skrzyżowanie River Raid z Galaxy Invaders. Celem jest opanowanie programowania na Androida, coś, o czym myślałem od dłuższego czasu. No przecież ileż można pisać zapytania i formatki.
Na chwilę obecną mam zrobione:
- wątek obsługujący animację z ograniczeniem fps,
- animację typu sprite,
- przewijane tło,
- podstawową kontrolę kolizji,
- odtwarzanie dźwięku - podstawy
To tyle na początek. Życzcie mi powodzenia.
środa, 17 marca 2010
Subskrybuj:
Posty (Atom)